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 相应。
分享到:
相关推荐
flex与+struts2+hibernate+spring集成实例项目,源码奉献,物有所值
《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...
struts hibernate spring集成开发宝典光盘源码(一).rar
Struts+Spring集成的主要目的是利用两者的优点,使开发更高效、维护更方便。在集成过程中,通常会用Spring来管理Struts中的Action类,实现Action的依赖注入,从而提高代码的可测试性和解耦性。下面将详细讲解这个...
这个压缩包“struts hibernate spring集成开发宝典光盘源码(二).rar”显然是一个用于学习这三大框架集成的实践项目,包含了一些示例代码和接口定义。 1. Struts:Struts 是一款开源的MVC(Model-View-Controller...
**Struts2与Spring的集成** 主要是通过Spring插件实现,这使得Action类可以作为Spring的bean管理,实现依赖注入。这样,Action类可以直接注入服务层(Service)和DAO(数据访问对象)层的bean,简化了代码结构,增强...
请下载Struts Hibernate Spring集成开发宝典.part1.rar和Struts Hibernate Spring集成开发宝典.part2.rar 《Struts Hibernate Spring集成开发宝典》中文pdf版 计算机电子书下载,《Struts Hibernate Spring集成开发...
《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...
在"第27讲--Struts与Spring集成方案1(Struts集成Spring)"中,我们主要探讨如何将Struts2与Spring进行整合。集成的主要目的是利用Spring的强大功能来管理Struts2中的Action类,从而实现更灵活的依赖注入和更好的控制...
- **Struts-Spring集成**:通过Spring的Action代理,可以将Struts的Action实例化和管理交给Spring,实现Action的依赖注入。同时,Spring可以作为Struts的ModelDriven模式的实现,简化模型与视图的交互。 - **...
在Java Web开发中,将Struts2与Spring进行集成,可以充分利用两者的优势,实现更好的业务逻辑管理和控制流分离。集成过程主要包括以下几个步骤: 1. **引入依赖**:首先,在项目中添加Struts2和Spring的相关库,...
Struts Hibernate Spring集成开发宝典
2. AOP整合:Spring的AOP可以用于事务管理,当Struts的Action执行完毕后,Spring会自动处理相关的事务操作。 3. 视图模型整合:Spring的ModelAndView与Struts的ActionForward可以结合,提供更灵活的视图跳转。 4. ...
本讲解将深入探讨如何将Spring集成到Struts中,以实现更好的控制反转(IoC)和面向切面编程(AOP)。 Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要用于处理HTTP请求和展示视图。它...
通过以上步骤,我们可以成功地将Struts2和Spring集成在一起,利用Spring的强大功能管理Action类、事务以及其他的业务逻辑,同时保持Struts2的MVC架构清晰易用。这种集成方式提高了代码的可测试性,降低了耦合度,...
对于Struts2,Spring可以通过`struts-plugin.xml`与Struts2进行集成,提供Action的依赖注入。此外,还需要配置Spring的数据源、事务管理器以及JPA的实体扫描路径。 3. **JPA配置**:JPA的配置主要涉及`persistence....
《Struts Hibernate Spring 集成开发宝典》是一本深度探讨企业级Java应用开发的著作,重点关注了三个核心框架的整合使用:Struts、Hibernate和Spring。这三大框架是Java Web开发中的重要组成部分,各自在不同的层面...
2. **Struts2-Spring插件**:为了实现Struts2和Spring的集成,我们需要使用Struts2提供的Struts2-Spring插件。这个插件能够使Struts2 Action类成为Spring管理的Bean,从而可以利用Spring的DI功能。 3. **Action配置...
- Spring与Struts2集成,Spring可以作为Struts2的Action的依赖注入容器,通过Spring的ApplicationContext获取服务层对象,实现业务逻辑处理。 - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取...
在本资源中,"struts2 spring hibernate框架技术与项目实战 光盘源码 上"提供了这三大框架的实践项目代码,帮助开发者深入理解并掌握它们的集成与应用。 Struts2作为MVC(模型-视图-控制器)框架,主要负责处理HTTP...