Struts2.1.6 与Spring2.5.6框架整合

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.apache.org/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" ?>
 2 < web-app  version ="2.5"  xmlns ="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee 
 5     http://java.sun.com/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 >

5、引入Spring包,在dist目录下
   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.springframework.org/schema/beans"
 4     xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
 5     xmlns:context ="http://www.springframework.org/schema/context"
 6     xmlns:tx ="http://www.springframework.org/schema/tx"
 7     xmlns:aop ="http://www.springframework.org/schema/aop"
 8     xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 9                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
10                 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
11                 http://www.springframework.org/schema/aop http://www.springframework.org/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 >
        
< listener-class >
            org.springframework.web.context.ContextLoaderListener
        
</ listener-class >
    
</ listener >

   前一段代码的配置是因为我们配置了后一段代码的配置后它默认是到WEB-INF下查找applicationContext.xml文件,我们现在 改到src目录下并进行文件分解。

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 "
 2     pageEncoding = " GB18030 "
%>
 3 <% @ taglib prefix = " s "  uri = " /struts-tags " %>
 4 <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/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 >

welcome.jsp

 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.w3.org/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

1 package  com.test.manager;
2
3 public   interface  LoginManager  {
4      public   boolean  isLogin(String username, String password);
5 }

LoginManagerImpl.java,只是测试用,判断用户名密码是否为intrl、intrl,若是则登录成功

 1 package  com.test.manager.impl;
 2
 3 import  com.test.manager.LoginManager;
 4
 5 public   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 }

(3)在applicationContext-beans.xml把实现类配置上,以让Spring进行管理

     < bean  id ="loginManager"
        class
="com.test.manager.impl.LoginManagerImpl" >
    
</ bean >

(4)创建包com.test.action用于存放action,并新建LoginAction.java,继承ActionSupport类
包 含从页面所接收参数username、password,以及业务逻辑处理类LoginManager类型的loginManager,给 username和password设置get、set,给loginManager设置set方法,以让Spring为我们自动注 入;overwrite父类中的

 1 package  com.test.action;
 2
 3 import  com.opensymphony.xwork2.ActionSupport;
 4 import  com.test.manager.LoginManager;
 5
 6 @SuppressWarnings( " serial " )
 7 public   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 }

(5)在applicationContext-actions.xml中进行配置,也让Spring来管理LoginAction

     < bean  id ="loginAction"  class ="com.test.action.LoginAction"
        scope
="prototype" >
        
< property  name ="loginManager"  ref ="loginManager" ></ property >
    
</ bean >

(6)在struts.xml中进行配置,处理页面提交的请求,配置action:login,login一定要和login.jsp中form的 action属性名匹配。此时struts.xml文件如下:

 1 <? xml version="1.0" encoding="GBK"  ?>
 2 <! DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4  
分享到:
评论

你可能感兴趣的:(spring,AOP,框架,xml,struts)