1、在MyEclipse中新建项目(test)
2、Struts包导入 暂时导入所必需的包,其他包将在用到时导入: commons-fileupload-1.2.1.jar commons-logging-1.0.4.jar freemarker-2.3.13.jar ognl-2.6.11.jar struts2-core-2.1.6.jar xwork-2.1.2.jar 3、复制在Struts目录的例子程序中WEB-INF\classes\struts.xml文件,粘贴到项目的src目录下,主要保留其文件头: 1<?xml version="1.0" encoding="GBK" ?>
2<!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts./dtds/struts-2.0.dtd"> 5 6<struts> 7 <package name="struts2" extends="struts-default"> 8 9 </package> 10</struts> 4、配置web.xml 1<?xml version="1.0" encoding="UTF-8"?>
5、引入Spring包,在dist目录下2<web-app version="2.5" xmlns="http://java./xml/ns/javaee" 3 xmlns:xsi="http://www./2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java./xml/ns/javaee 5 http://java./xml/ns/javaee/web-app_2_5.xsd"> 6 7 <filter> 8 <filter-name>struts2</filter-name> 9 <filter-class> 10 org.apache.struts2.dispatcher.FilterDispatcher 11 </filter-class> 12 </filter> 13 <filter-mapping> 14 <filter-name>struts2</filter-name> 15 <url-pattern>/*</url-pattern> 16 </filter-mapping> 17 18 <welcome-file-list> 19 <welcome-file>index.jsp</welcome-file> 20 </welcome-file-list> 21</web-app> spring.jar 6、在src目录下建立三个文件 applicationContext-actions.xml applicationContext-beans.xml applicationContext-common.xml 这三个文件其实是applicationContext.xml的分解,为的是避免所有配置放在同一文件,造成混乱。 结构均如下: 1<?xml version="1.0" encoding="GBK"?>
2 3<beans xmlns="http://www./schema/beans" 4 xmlns:xsi="http://www./2001/XMLSchema-instance" 5 xmlns:context="http://www./schema/context" 6 xmlns:tx="http://www./schema/tx" 7 xmlns:aop="http://www./schema/aop" 8 xsi:schemaLocation="http://www./schema/beans http://www./schema/beans/spring-beans-2.5.xsd 9 http://www./schema/context http://www./schema/context/spring-context-2.5.xsd 10 http://www./schema/tx http://www./schema/tx/spring-tx-2.5.xsd 11 http://www./schema/aop http://www./schema/aop/spring-aop-2.5.xsd"> 12 13</beans> 7、需要在web.xml进行配置 <context-param>
<param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext-*.xml</param-value> </context-param> <listener>
前一段代码的配置是因为我们配置了后一段代码的配置后它默认是到WEB-INF下查找applicationContext.xml文件,我们现在改到src目录下并进行文件分解。<listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> 8、需要引入Struts2中的另一个包 struts2-spring-plugin-2.1.6.jar 9、测试是否整合成功 (1)建立页面login.jsp、welcome.jsp、error.jsp分别为登录页面、登录成功页面、出错页面 login.jsp 1<%@ page language="java" contentType="text/html; charset=GB18030"
welcome.jsp2 pageEncoding="GB18030"%> 3<%@ taglib prefix="s" uri="/struts-tags"%> 4<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www./TR/html4/loose.dtd"> 5<html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 8 <title>登录页面</title> 9 </head> 10 <body> 11 <s:form action="login" method="post"> 12 <s:textfield name="username" label="username" /> 13 <s:password name="password" label="password" /> 14 <s:submit value="submit" /> 15 </s:form> 16 </body> 17</html> 1<%@ page language="java" contentType="text/html; charset=GB18030"
2 pageEncoding="GB18030"%> 3<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www./TR/html4/loose.dtd"> 4<html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> 7 <title>登录成功</title> 8 </head> 9 <body> 10 用户名:${username } 11 <br> 12 密码:${password } 13 <br> 14 </body> 15</html> (2)建包com.test.manager和com.test.manager.impl分别存放业务逻辑处理的接口和其实现,分别建立接口LoginManager.java和其实现LoginManagerImpl.java LoginManager.java 1package com.test.manager;
LoginManagerImpl.java,只是测试用,判断用户名密码是否为intrl、intrl,若是则登录成功2 3public interface LoginManager { 4 public boolean isLogin(String username, String password); 5} 1package com.test.manager.impl;
(3)在applicationContext-beans.xml把实现类配置上,以让Spring进行管理2 3import com.test.manager.LoginManager; 4 5public class LoginManagerImpl implements LoginManager{ 6 public boolean isLogin(String username, String password) 7 { 8 if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim())) 9 { 10 return true; 11 } 12 return false; 13 } 14} <bean id="loginManager"
(4)创建包com.test.action用于存放action,并新建LoginAction.java,继承ActionSupport类class="com.test.manager.impl.LoginManagerImpl"> </bean> 包含从页面所接收参数username、password,以及业务逻辑处理类LoginManager类型的loginManager,给username和password设置get、set,给loginManager设置set方法,以让Spring为我们自动注入;overwrite父类中的 1package com.test.action;
(5)在applicationContext-actions.xml中进行配置,也让Spring来管理LoginAction2 3import com.opensymphony.xwork2.ActionSupport; 4import com.test.manager.LoginManager; 5 6@SuppressWarnings("serial") 7public class LoginAction extends ActionSupport { 8 private LoginManager loginManager; 9 private String username; 10 private String password; 11 12 public String getUsername() { 13 return username; 14 } 15 16 public void setUsername(String username) { 17 this.username = username; 18 } 19 20 public String getPassword() { 21 return password; 22 } 23 24 public void setPassword(String password) { 25 this.password = password; 26 } 27 28 public void setLoginManager(LoginManager loginManager) { 29 this.loginManager = loginManager; 30 } 31 32 @Override 33 public String execute() throws Exception { 34 35 if(loginManager.isLogin(username, password)) 36 { 37 return SUCCESS; 38 } 39 return INPUT; 40 } 41} <bean id="loginAction" class="com.test.action.LoginAction"
(6)在struts.xml中进行配置,处理页面提交的请求,配置action:login,login一定要和login.jsp中form的action属性名匹配。此时struts.xml文件如下:scope="prototype"> <property name="loginManager" ref="loginManager"></property> </bean> 1<?xml version="1.0" encoding="GBK" ?>
2<!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts./dtds/struts-2.0.dtd"> 5 6<struts> 7 <package name="struts2" extends="struts-default"> 8 <action name="login" class="loginAction"> 9 <result name="success">welcome.jsp</result> 10 <result name="input">login.jsp</result> 11 <result name="error">error.jsp</result> 12 </action> 13 </package> 14</struts> (7)此时目录结构如下: posted on 2009-04-12 16:38 intrl 阅读(1059) 评论(20) 编辑 收藏 引用 所属分类: Java 、Struts2 、Spring |
|