`
jxb1016
  • 浏览: 22127 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2与Spring的整合

 
阅读更多
                 Struts2与Spring的整合  
   根据当前的统计状况,软件开发行业对Struts1的使用率逐渐在降低,而对Struts2的使用率逐渐上升,这取决于Struts2比Struts1有着很多更方便,合理的改进。
   简单说几点关键的改进吧。首先,Struts2中的Action不再依赖于Http协议,进一步说就是不再依赖于表示层中的request,response等http协议中的对象了,这一改进让我们的Action可以是一个普通的JavaBean或叫POJO类;其次,它在配置文件的配置上简化了很多,配置很方便;再次就是,它是一个基于组件的框架,可整合JSF,Tapestry,DWR,FreeMark,JFreeChart,Spring等等,体现了它强大的可扩展性。
   那么,我现在谈下Spring与Struts2的整合。
   其整合中最重要的原理就是,我们的Structs2在默认情况下是由自己创建Action对象,进行请求处理和业务调度的。可是SSH整合的项目中,我们都知道,后台的业务处理和DAO都是由Spring进行横向管理的。这意味着,我们的请求要想得到后台业务对象的相关服务,就必须和Spring扯上关系,那就是把Struts2里面创建Action的权利交给Spring。
    第一,我们首先要把Struts2与Spring整合的支持架包导入工程,加入struts2-spring-plugin-2.0.9.jar到lib目录.
    第二,我们通过配置web.xml来通知工程在启动时候装载Spring上下文,具体配置如下:
在web.xml中添加如下配置。
   <!-- Struts2配置 -->
        <!-配置Structs2的中心控制器-->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!--设置上下文本地配置文件的路径-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/classes/applicationContext.xml
		</param-value>
	</context-param>

	<!-- 装载Spring上下文 -->
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener> 

    第三,在struts.properties中加入: struts.objectFactory = spring或在struts.xml中加入: <constant name="struts.objectFactory" value="spring" />告知Struts2的Action由Spring创建和管理。
    第四,在Spring配置文件applicationContext.xml中加入相应Action的<bean />,
如:Struts2中有个Action为LoginAction,此Action的name属性为name="login",那么在Spring的配置文件的配置就是:
<bean id="login" class="org.struts2.action.LoginAction"></bean>
我们就可以在上面的bean中由Spring注入相应的业务对象了。

    Ok,这样,Struts2就和Spring整合了。
分享到:
评论
4 楼 huanglei7211 2010-04-22  
楼主你写的也太简单了????
多提供点撒!
3 楼 huanglei7211 2010-04-22  


对应struts.xml文件配置是
<action name="login" class="org.strus2.action.LoginAction"></action>
2 楼 kgd4409 2010-04-22  

第四步中的applicationContext.xml中配置的
<bean id="login" class="org.struts2.action.LoginAction"></bean>
对应于struts.xml文件的配置是
<action name="mymethod" class="login"></action>

即bean的id值对应于action中的class值。

请问楼主是不是这样配置的?新人求解。

1 楼 isy 2010-04-22  
我就是冲着Structs2与Spring的整合这个题目来的,还以为struts也出山寨版了.

相关推荐

Global site tag (gtag.js) - Google Analytics