第一步,向Structs注册Spring插件 。
为了使Structs能够访问Spring管理的bean,需要注册知晓Spring应用程序环境的Structs插件。在structs-conffig.xml中添加下面的代码来注册插件:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext*.xml"
/>
</plug-in>
ContextLoaderPlugIn加载Spring的上下文环境,这个类来自于Spring2.0 Web Libraries 下的spring-structs.jar包下。我们可以找到该类,拷贝其全限度名称,这样一面手写失误。
第二步:修改Struts的配置文件struts-config.xml中的action type,将控制权交给Spring来管理:
<action-mappings >
<action
attribute="findMeForm"
input="/form/findMe.jsp"
name="findMeForm"
path="/findMe"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="result" path="/index.jsp" />
</action>
</action-mappings>
其中org.springframework.web.struts.DelegatingActionProxy来自于自于Spring2.0 Web Libraries 下的spring-structs.jar包下。此类为action的代理,当生成或使用cation对象时候,由Spring提供,并且可以为其注入相关对象等。
第三:在Spring中配置action的对应的信息,也就是在applicationContext.xml中添加如下代码,例如:
<bean name="/findMe" class="com.jxb.struts.action.FindMeAction">
<property name="storeService" ref="storeService"></property>
</bean>
值得注意的是:那个name属性必须为我们在Struts-config.xml中配置的action的path才行,在Struts2中可以将其配置成对应的name。但这里讲的只是struts1.
第四:在web.xml中添加Srping上下文。
<!-- 装载SPRING上下文 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
监听器的类在Spring2.0 Web Libraries 下的spring-web.jar包下的org.springframework.web.context中,上下文参数依然是ContextLoaderPlugIn中的属性contextConfigLocation。
由此可知,我们已经完成了两者得到整合,若在action中需要手动获取上下文环境只需要在action里这样:
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext());
IStoreService iss = (IStoreService)ctx.getBean("storeService");
也可以使我们自己的action类继承ActionSupport类,因为该类中可以直接用getWebApplicationContext()方法获取Spring上下文环境。
总结一下,struts与Srping整合的关键是如何让Struts知道Spring的存在,那么就要把Spring的插件注册到Struts里。如何让Spring帮着管理Action,那么就要将struts配置中的type更改成org.springframework.web.struts.DelegatingActionProxy代理,并且在Srping的配置中配置好对应action的bean信息,如此一来,我们的两者就牵肠挂肚了。为了在容器一启动时候加载Spring的东西,我们就在web.xml中注册了插件的属性参数contextConfigLocation。并且添加了上下文加载之监听器。
分享到:
相关推荐
一个简单的将 Struts 与 Spring 整合到一起的项目的实例过程。不求最好,只求实用。
Struts2整合spring的步骤 配置Spring的核心配置文件 Struts2整合spring的步骤
ssh三大框架的整合步骤,非常详细。包含spring整合struts、spring整合hibernate、声明式事务说明等。
SSM(Spring+Struts2+Mybatis)整合步骤 纯手写
1.新建工程,加入所需要的包; 2.配置sturts.xml; 3.配置Spring监听器; 4.Spring配置文件; .......
Struts1注意点,整合Spring步骤
SSH整合开发例子: 实现功能:使用ssh实现用户表的新增功能. (内附有文档解说开发步骤,此例子是可以跑通的) 环境:jdk5.0 eclipse3.2 struts1.1 spring1.2 ...下面就是SSH的整合了,首先hibernate和spring整合。
struts2+spring整合登陆验证经典完整案例!期余JAR文件在struts2+spring整合登陆验证经典完整案例!(JAR)这个中,免积分下载! 部署Web应用请按如下步骤进行: 1. 进入reg_login路径下,将mysql.sql脚本中的语句...
Struts 1.2+Hibernate3.3+Spring3.0整合详细步骤+源码
这是个介绍三个框架之间的关系 以及如果运用,对大部分人适用!!!
spring-struts2整合详细步骤。适合初学者参考。内容详尽。
1. word文档记录了Struts2+Hibernate3+Spring2.5整合详细步骤,附有操作步骤的图示参考,并给出了各个步骤的注意事项; 2. 源代码实例包括一个完整模块的增删改查操作,可直接运行,可以在此基础上直接进行自己系统...
Struts2框架整合Spring整合步骤:1 复制文件。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。
NULL 博文链接:https://z-jianwen.iteye.com/blog/619319
使用Eclipse开发Struts+Spring+Hibernate的完整步骤
Struts+Spring+Hibernate经典项目案例值得学习 Struts+Spring+Hibernate经典项目案例值得学习
▲Struts+Spring和iBatis整合 这是演示范例,不设计高级知识,易看易懂。 演示了▲Struts+Spring和iBatis的整合完整步骤!~ 包学包会!~~~~~~~~~~
Struts2+Spring简单整合 初学者可以跟这来搭建struts2+spring 开发环境 搭建步骤请阅此http://blog.csdn.net/kyle8525_nsn/article/details/8664901
struts2+spring+hibernate整合步骤.doc