首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Struts2.2.1整合Spring3.0的两种步骤

2014-01-14 
Struts2.2.1整合Spring3.0的两种方法首先让spring加入到web应用中,在web应用中一般是启动的时候初始化spin

Struts2.2.1整合Spring3.0的两种方法
首先让spring加入到web应用中,在web应用中一般是启动的时候初始化sping容器。我们知道servletContextListener可以做到这一点,该监听器在web应用启动时回调自定义方法--该方法就可以启动web容器。Sping提供了一个ContextLoaderListener该监听器实现了ServletContextListener接口,该类可以作为监听器使用。它在创建使自动查找web-inf下的applicationContext.xml配置文件。;

第一中整合方法:让Spring接管struts的业务控制器(也就是Action),换句话说就是让struts的action纳入spring的管理中。
  我们知道Struts2的主要流程:先是请求到达Filter(也就是中央控制器),中央控制器通过解析struts.xml文件获取该请求是到哪一个业务控制器(也就是业务action),再通过反射创建这个业务控制器,我们这种整合就是让action的创建工作不再让struts的中央控制器去创建,而是用spring去创建,struts的中央控制器直接到spring的工厂中取Action即可。下面是具体的实例:


注意:此种方法需要引进spring的插件:struts2-spring-plugin-2.2.1.jar,Spring管理Action时一定要改变Action bean的scope不能将action的bean的scope设置为单例模式,需要改为:prototype 和 request两种。

此方法的缺点:
1,Spring管理Action,必须将每一个需要被管理的Action配置在applicationContext.xml文件中,而Struts的配置文件中也要配置每一个伪Action,配置两边未免冗余。
2,Action的业务逻辑租价接受容器注入,将导致代码的可读性降低。

1,Actin类:

    </bean>
    <bean id="strutsSpringLoginService"         
           import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <body><%--struts标签key对应的是国际化资源文件中的key --%> <s:form action="strutsSpringLogin"> <s:textfield name="username" key="user"></s:textfield> <s:textfield name="password" key="pass"></s:textfield> <s:submit key="login"></s:submit> </s:form> </body></html>


6,登录成功页面:


7,登录失败页面




二:struts,spring的第二种整合方法:spring的自动装配。
     所谓自动装配就是让spring插件自动将业务逻辑组建注入struts2的Action中,而无需使用ref显示指定以来Bean,spring容器会自动检查xml配置文件内容,为主调bean注入依赖bean,自动装配可以减少配置文件的工作量,但会减低依赖关系的透明性和清晰性。通过使用自动装配,可以让spring插件自动将业务逻辑组建注入struts2的action中。

下面是实例:
1,Action类;


6,登录成功页面:



热点排行