Spring与Struts2整合的两种解决方案
本文由发表于6年前 | J2EE | 暂无评论 |  被围观 11,280 views+

Struts2与Spring整合的方案一:
(1)将struts2-spring-plugin-x-x-x.jar复制到工程的WEB-INF/lib目录下,在该插件包中有个struts-plugin.xml文件,该文件的默认配置如下:
<struts>
    <bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />

    <!--  Make the Spring object factory the automatic default -->
    <constant name="struts.objectFactory" value="spring" />

    <package name="spring-default">
        <interceptors>
            <interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
            <interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>
        </interceptors>
    </package>    
</struts>
(2)在web.xml中配置Spring的监听器:
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>/WEB-INF/applicationContext.xml,/WEB-INF/applicationContext-*.xml</param-value>
</context-param>
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
(3)修改Struts.xml配置文件:

在配置Action时,需要将class属性和Spring配置文件中的相对应的Action的bean的Id的属性保持一致,系统即可通过Spring来装配和管理Action。
如果action包含了Service层的对象:

private StudentInfoServiceImpl studentInfoService;

则需要添加set方法,才可以使用Spring依赖注入:

public void setStudentInfoService(StudentInfoServiceImpl studentInfoService) {

	this.studentInfoService = studentInfoService;
}
如果action在struts.xml如下配置:
<action name="studentRegister" class="studentRegisterAction">
	<result name="result">/WEB-INF/exam/result.jsp
	</result>
	<result name="input">/WEB-INF/exam/error.jsp
	</result>
	<interceptor-ref name="excludeParamsStack" />
</action>
则在applicationContext.xml文件中该Action的配置如下:
<bean id="studentRegisterAction" class="com.exam.actions.StudentRegisterAction" scope="prototype">
	<property name="studentInfoService">
		<ref bean="studentInfoService" />
	</property>
</bean>
Struts2与Spring整合的方案二:

前面两个步骤和方案一的一样;
在配置struts.xml文件时,Action的class为该Action的类路径,而在applicationContext.xml配置文件中不需要添加Action的bean配置。这样,当我们使用Action类时,由于studentInfoService已经配置了相关的bean,所以会自动装配。

studentInfoService的配置:
<bean id="studentInfoService" class="com.exam.service.StudentInfoServiceImpl">
	<constructor-arg>
		<ref bean="studentInfoDAO" />
	</constructor-arg>
</bean>
Action在struts.xml中的配置如下:
<action name="studentRegister" class="com.exam.actions.StudentRegisterAction">
	<result name="result">/WEB-INF/exam/result.jsp
	</result>
	<result name="input">/WEB-INF/exam/error.jsp
	</result>
	<interceptor-ref name="excludeParamsStack" />
</action>
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/spring-and-struts2-integration-of-the-two-solutions.html
关键字: , ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 5/23
如果您有更好的原创技术博文或者观点,欢迎投稿:admin@itzhai.com,或者关注订阅左侧浮动面板的微信号订阅IT宅itread)发送消息。
文章评论
    没有评论
给我留言

有人回复时邮件通知我
J2EE的相关文章
随机文章 本月热门 热评
1 使用ItzDesktop创建Web桌面简单教程 2012/6/10
2 处理机调度与死锁-常用调度算法与银行家解决速锁问题 2011/6/29
3 数据结构笔记 – 排序算法 简单选择排序算法 2011/9/20
4 使用JSTL格式化从服务器获取的Date类型数据 2011/9/7
5 JVM笔记 – 走近Java 2014/11/1
6 org.hibernate.LazyInitializationException的解决方法 使用OpenSessionInViewFilter 2011/7/31
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.