spring2.5整合struts1.2

spring和struts都是著名的开源框架,目前已成为企业级WEB开发的首选.Spring是一个轻量级(大小和系统开支的角度)的IoC和AOP容器.它力图简化J2EE开发即J2EE without EJB.而且作为帮助企业级开发的核心支柱,Spring为模型层(OR持久层:Hibernate、JDO、iBatis等)服务层(EJB、JNDI、WebService)以及表现层(Struts、JSF、Velocity)都提供了良好的支持和集成方案

下面我们就来整合spring和struts,以spring2.5整合struts1.2为例,不同的版本,可能整合方式有些不同,不过可以参考网上资料.首先列出整合的步骤:

1,分别导入spring2.5和struts1.2的Jar包(如查使用myeclipse可以自动添加)

2.建立jsp页面

3.建立业务层和Action类用来测试

4.配置applicationContext.xml,web.xml,struts-config.xml文件

5.启动tomcat,在IE地址栏输入http://localhost:8080/项目名/

一.导入spring2.5和struts1.2的Jar包

把spring2.5与struts1.2中分别的包导入后,还需要在spring中导入一个spring-webmvc-struts.jar包,这个包是用来整合的,我这里整合用的包名分别为:

struts1.2

antlr.jar
commons-beanutils.jar
commons-digester.jar
commons-fileupload.jar
commons-logging.jar
commons-validator.jar
jakarta-oro.jar
struts.jar

spring2.5

aspectjrt.jar
aspectjweaver.jar
cglib-nodep-2.1_3.jar
common-annotations.jar
commons-logging.jar
spring.jar
spring-webmvc-struts.jar(这个是关键包,少了就会报错)

二.建立jsp页面

建立一个登录的index.jsp页面:

Code:
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <html>  
  3.   <head>  
  4.   <title> 登录页面 </title>  
  5.   <link rel=stylesheet href="css/login.css" type="text/css">  
  6.   </head>  
  7.   <body>  
  8.   <h1 align="center">用户登录页面</h1>  
  9.   <hr>  
  10.    <div align="center">  
  11.    <form action="login.do" method="post">  
  12.    <table  cellspacing=5 border=5 bodercolor=#ffaa00 >  
  13.    <tr><th colspan="3" align="center"  bgcolor=#ffaa00>用户登录</th></tr>  
  14.    <tr>  
  15.    <th rowspan="3" background="images/2.jpg" style="width=90px"></th>  
  16.    <td>用户名:</td><td><input type="text" class="message" name="username"></td></tr>  
  17.    <tr><td>密  码:</td><td><input class="message" type="password" name="userpassword"></td></tr>  
  18.     <tr><td colspan="2" align="center"><input type="submit" value="登录">  <input type="reset" value="重置"></td></tr>  
  19.    </table>  
  20.    </form>  
  21.    </div>  
  22.   </body>  
  23. </html>  

接下来一个成功跳转页面succ.jsp和一个失败跳转页面failure.jsp:

Code:
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <html>  
  3.   <head>  
  4.    <title>Succsess</title>  
  5.   </head>  
  6.   <body>  
  7.     Succsess. <br>  
  8.   </body>  
  9. </html>  
Code:
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <html>  
  3.   <head>  
  4.    <title>Failure</title>  
  5.   </head>  
  6.   <body>  
  7.     Failure. <br>  
  8.   </body>  
  9. </html>  

三.建立各类

form类LoginActionForm.java:

Code:
  1. package myclass.from;   
  2.   
  3. import org.apache.struts.action.ActionForm;   
  4.   
  5. public class LoginActionForm extends ActionForm{   
  6.     public String username;   
  7.     public String userpassword;   
  8.     public String getUsername() {   
  9.         return username;   
  10.     }   
  11.     public void setUsername(String username) {   
  12.         this.username = username;   
  13.     }   
  14.     public String getUserpassword() {   
  15.         return userpassword;   
  16.     }   
  17.     public void setUserpassword(String userpassword) {   
  18.         this.userpassword = userpassword;   
  19.     }   
  20.        
  21.        
  22. }   

Action类LoginAction.java:

Code:
  1. package myclass.action;   
  2.   
  3. import javax.servlet.http.HttpServletRequest;   
  4. import javax.servlet.http.HttpServletResponse;   
  5.   
  6. import myclass.from.LoginActionForm;   
  7. import myclass.service.LoginService;   
  8.   
  9. import org.apache.struts.action.Action;   
  10. import org.apache.struts.action.ActionForm;   
  11. import org.apache.struts.action.ActionForward;   
  12. import org.apache.struts.action.ActionMapping;   
  13.   
  14. public class LoginAction extends Action{   
  15.     private LoginService loginService;   
  16.      public ActionForward execute(   
  17.                 ActionMapping mapping,   
  18.                 ActionForm form,   
  19.                 HttpServletRequest request,   
  20.                 HttpServletResponse response)   
  21.                 throws Exception {   
  22.                 LoginActionForm laf=(LoginActionForm)form;   
  23.                 System.out.println(laf.getUsername()+"----"+laf.getUserpassword());   
  24.                 String path="";   
  25. //调用业务层的方法   
  26.                 this.getLoginService().login(laf.getUsername(), laf.getUserpassword());   
  27.   
  28.                 path="succ";   
  29.                     return mapping.findForward(path);   
  30.                
  31.         }   
  32.     public LoginService getLoginService() {   
  33.         return loginService;   
  34.     }   
  35.     public void setLoginService(LoginService loginService) {   
  36.         this.loginService = loginService;   
  37.     }   
  38. }   

业务层接口LoginService.java:

Code:
  1. public interface LoginService {   
  2. public void login(String username,String userpassword);   
  3. }  

业务层实现类LoginServiceImp.java:

Code:
  1. package myclass.service.impl;   
  2.   
  3. import myclass.service.LoginService;   
  4.   
  5. public class LoginServiceImp implements LoginService{   
  6.   
  7.     public void login(String username, String userpassword) {   
  8.         System.out.println("欢迎你来到业务层:"+username+"---"+userpassword);   
  9.            
  10.     }   
  11.   
  12. }   

四.配置applicationContext.xml,web.xml,struts-config.xml文件

这个是整个的关键,不过spring整合struts还算是容易,如果还整合了hibernate就会复杂很多.

首先在web.xml中加载spring框架:

Code:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"    
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"    
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.     <!--加载spring框架 -->  
  8.     <context-param>  
  9.     <param-name>contextConfigLocation</param-name>  
  10.     <param-value>classpath:application*.xml</param-value>  
  11.     </context-param>  
  12.     <servlet>  
  13.     <servlet-name>context</servlet-name>  
  14.     <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>  
  15.     <load-on-startup>1</load-on-startup>  
  16.     </servlet>  
  17.         
  18.      <servlet>  
  19.     <servlet-name>action</servlet-name>  
  20.     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
  21.     <init-param>  
  22.       <param-name>config</param-name>  
  23.       <param-value>/WEB-INF/struts-config.xml</param-value>  
  24.     </init-param>  
  25.     <init-param>  
  26.       <param-name>debug</param-name>  
  27.       <param-value>3</param-value>  
  28.     </init-param>  
  29.     <init-param>  
  30.       <param-name>detail</param-name>  
  31.       <param-value>3</param-value>  
  32.     </init-param>  
  33.     <load-on-startup>0</load-on-startup>  
  34.   </servlet>  
  35.   <servlet-mapping>  
  36.     <servlet-name>action</servlet-name>  
  37.     <url-pattern>*.do</url-pattern>  
  38.   </servlet-mapping>  
  39.   
  40.   <welcome-file-list>  
  41.     <welcome-file>index.jsp</welcome-file>  
  42.   </welcome-file-list>  
  43. </web-app>  

这是其中一种方法,也可以在struts-config.xml中使用插件的方法加载spring框架,任选其一,具体见struts-config.xml,在这里还要加入controller节点把本文件中的action委托给spring框架管理,如下:

Code:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <!DOCTYPE struts-config PUBLIC   
  4.        "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"   
  5.        "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">  
  6.        <struts-config>  
  7.        <!-- 配置ActionForm -->  
  8.        <form-beans>  
  9.        <form-bean name="loginform" type="myclass.from.LoginActionForm"></form-bean>  
  10.        </form-beans>  
  11.        <!-- 配置登录 -->  
  12.        <action-mappings>  
  13.        <action path="/login" name="loginform" >  
  14.        <!-- 配置跳转 -->  
  15.        <forward name="succ" path="/succ.jsp"></forward>  
  16.         <forward name="failure" path="/failure.jsp"></forward>  
  17.        </action>  
  18.        </action-mappings>  
  19.           
  20.       <!-- 把本文件中的action委托给spring框架管理 -->  
  21.     <controller>  
  22.      <set-property property="processorClass"  
  23.       value="org.springframework.web.struts.DelegatingRequestProcessor"/>  
  24.     </controller>  
  25.     <!-- 加载spring框架    
  26.     <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">  
  27.     <set-property property="contextConfigLocation"  
  28.       value="classpath:applicationContext.xml"/>  
  29.     </plug-in>  
  30.     -->  
  31.        </struts-config>  

现在,就可以使用applicationContext.xml来管理业务bean和action了:

Code:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.      xmlns:context="http://www.springframework.org/schema/context"  
  5.       xmlns:aop="http://www.springframework.org/schema/aop"  
  6.       xmlns:tx="http://www.springframework.org/schema/tx"  
  7.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  8.     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
  9.     http://www.springframework.org/schema/aop    
  10.     http://www.springframework.org/schema/aop/spring-aop-2.5.xsd   
  11.     http://www.springframework.org/schema/tx   
  12.     http://www.springframework.org/schema/tx/spring-tx-2.5.xsd   
  13.     http://www.springframework.org/schema/context   
  14.     http://www.springframework.org/schema/context/spring-context-2.5.xsd">  
  15.     <!-- 启动注解    
  16.    <context:annotation-config></context:annotation-config>  
  17. -->  
  18.    <bean id="loginServiceImp" class="myclass.service.impl.LoginServiceImp">  
  19.    </bean>  
  20.   
  21.     <bean name="/login" class="myclass.action.LoginAction">  
  22.     <property name="loginService" ref="loginServiceImp"></property>  
  23.     </bean>  
  24. </beans>  

action  bean name="/login"中不能使用id,只能用name,不然会错,并且name与action path="/login"相同,通过这个来连接action.到这里就整合完了,接下来启动tomcat可以测试了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值