struts2.与spring集成
来源:互联网 发布:smc软件 编辑:程序博客网 时间:2024/04/27 15:44
1.将struts2-spring-plugin-2.0.8.jar文件包含到我们的应用中,放到WEB-INF/lib目录下面即可。在这个插件包中有个struts-plugin.xml文件,它的内容如下:
<struts>
<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring"
class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<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>
这里它将框架常量struts.objectFactory覆盖了,设置为”spring”,其实这里是使用了缩写,我们可以写全称:org.apache.struts2.spring.StrutsSpringObjectFactory。这个缩写的”spring”是和bean配置中的name属性相对应的。默认情况下所有由框架创建的对象都是由ObjectFactory实例化的,ObjectFactory提供了与其它IoC容器如Spring、Pico等集成的方法。覆盖这个ObjectFactory的类必须继承ObjectFactory类或者它的任何子类,并且要带有一个不带参数的构造方法。在这里我们用org.apache.struts2.spring.StrutsSpringObjectFactory代替了默认的ObjectFactory。
如果action不是使用Spring ObjectFactory创建的话,插件提供了两个拦截器来自动装配action,默认情况下框架使用的自动装配策略是name,也就是说框架会去Spring中寻找与action属性名字相同的bean,可选的装配策略还有:type、auto、constructor,我们可以通过常量struts.objectFactory.spring.autoWire来进行设置。
2.配置Spring监听器,将Spring.jar包包含到应用中
在web.xml中加上:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
3.利用Spring配置文件来注册对象
在applicationContext-xml.进行配置bean,当配置Action的id时应该与struts.xml中class我相应,进行关联起来。如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Example of SAF2 action instantiated by Spring -->
<bean id="dao" class="tutorial.dao.BookDao" singleton="true" />
<bean id="bookAction" class="tutorial.action.BookAction" singleton="false">
<property name="dao">
<ref local="dao" />
</property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="Struts2_CRUD_DEMO" extends="struts-default" namespace="/Book">
<global-results>
<result name="root">/exception.jsp</result> <!-- /指向book包外的页面 -->
</global-results>
<global-exception-mappings>
<exception-mapping exception="common.MyException" result="root" />
</global-exception-mappings>
<action name="List" class="bookAction" method="list">
<result>List.jsp</result>
</action>
<action name="Edit" class="bookAction" method="load">
<result>Edit.jsp</result>
</action>
<action name="Store" class="bookAction" method="store">
<result type="redirect">List.action</result>
<result name="input">Edit.jsp</result>
</action>
<action name="Remove" class="bookAction" method="remove">
<result type="redirect">List.action</result>
</action>
</package>
</struts>
注意:strut.xml中配置的action的class值,应该与spring中配置的Action Bean id 相应。
- struts2.与spring集成
- struts2.与spring集成
- Struts2与Spring集成
- Spring与Struts2集成
- Spring与Struts2集成
- Struts2 与 Spring 集成实例
- Struts2 与 Spring 集成实例
- struts2 与 spring 的集成
- Struts2 与 Spring 的集成
- Struts2 与 Spring 的集成
- Spring IBatis Struts2 集成之二:Spring与Struts2集成
- Spring IBatis Struts2 集成之一:Spring与IBatis集成
- struts2与spring集成开发问题求教?
- SPRING与STRUTS2集成的原因
- 在Web层集成Struts2与Spring
- Spring与Struts2零配置集成
- struts2 与 spring集成原因 详解
- struts2与spring的简单集成
- 出差回来
- typeAlias元素
- .Net平台下的分布式缓存设计
- 做程序,累啊
- bcb利用TNMFTP上传文件设置
- struts2.与spring集成
- SQL Server 2008中的日期数据类型
- 收藏家蔡铭超拍得圆明园鼠兔首 称不会付款
- 服务器无法启动的三种解决办法
- C99标准更新
- Spring详解----个人笔记
- Actionscript 3.0 事件机制剖析---事件发送方式(一)
- 在.Net开发中几个重要的认识误区
- VSTS 单元测试备忘