`
QiaoDuanni
  • 浏览: 136911 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2.X与spring集成

阅读更多
转自:struts2.与spring集成

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.X+Hibernate3.X+Spring2.5 整合

    标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...

    struts1.x+spring+jta集成例子(包含所有jar包)

    在集成过程中,首先需要设置Struts1.x的配置文件(struts-config.xml),定义Action和ActionForm,以及与Spring的集成。接着,在Spring的配置文件(如applicationContext.xml)中,你需要定义业务bean,配置事务管理...

    DWR+jquery2.x+easyUI1.3.x开发富客户端应用

    1. **整合目标**:本文档的目标是将 Struts2.x、Spring3.x、Hibernate4.x 与 DWR、jquery2.x 和 easyUI1.3.x 进行集成,以构建一个功能齐全且高效的 Web 开发环境。 2. **jQuery 版本选择**:为了兼容性和性能考虑...

    Struts1.x+Spring+Hibernate开发实例

    2. **配置文件**:如struts-config.xml、spring-context.xml、hibernate.cfg.xml,分别配置Struts1.x的动作映射、Spring的bean定义和Hibernate的数据源及实体映射。 3. **实体类**:表示数据库中的表,通常会包含...

    Ext2.1 struts1.x spring 2.x hibernate 2.x

    此外,Spring 2.x还强化了与Hibernate等ORM框架的集成。 **Hibernate 2.x** Hibernate 2.x 是一款流行的对象关系映射(ORM)框架,用于处理Java应用程序与关系数据库之间的交互。它允许开发者用面向对象的方式操作...

    struts1.x+spring 2.x+hibernate3.x jar包 组合

    Struts1.x、Spring 2.x 和 Hibernate3.x 是经典的Java Web开发框架组合,被称为SSH(Struts-Spring-Hibernate)集成。这个jar包集合包含了这三个框架的核心库和其他相关依赖,便于开发者快速搭建一个基于MVC模式的...

    struts1.x+spring+hibernate集成例子(包含所有jar包,ehcache二级缓存)

    在"struts1.x+spring+hibernate集成例子"中,我们首先会看到如何将这三个框架整合到一个项目中。Struts1.x 作为前端控制器,接收用户的HTTP请求,通过Action转发和配置文件(struts-config.xml)来决定业务流程。...

    struts2.x hibernate spring 整合

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自在Web应用程序的不同层面上发挥作用,共同构建了所谓的"S2SH"(Struts2、Spring、Hibernate)集成架构。Struts2作为MVC(Model-View-Controller)框架...

    struts2.3.x+spring3.1.x+hibernate4.1整合工程(好用)

    2. **Struts2与Spring的整合**:通过Spring插件Struts2-Spring-plugin,使得Action类可以被Spring自动管理,实现依赖注入。同时,Struts2的配置文件中可以引用Spring管理的Bean。 3. **Hibernate与Spring的整合**:...

    Struts2.X 及于spring集成的jar

    将Struts2与Spring集成可以充分利用两者的优点,实现更高效、更灵活的开发。 集成Struts2和Spring,首先需要理解这两个框架的核心概念。Struts2作为MVC框架,主要负责处理HTTP请求,控制应用程序的流程,并将用户...

    Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00

    为了实现Struts1.x与Spring2.x的无缝集成,首先需要在项目的`web.xml`文件中进行必要的配置。具体步骤如下: - **配置Spring ContextLoaderListener**:通过`ContextLoaderListener`来加载Spring的应用上下文。 `...

    java Struts 1.x 框架 Web 开发

    然而,随着时间的推移,Struts 1.x 因为其局限性和安全问题,逐渐被Struts 2 和其他现代框架如Spring MVC、Play Framework等取代。尽管如此,了解 Struts 1.x 的基础知识对于理解Java Web开发的历史和演变仍然非常有...

    struts2.x jar

    在实际开发中,开发者通常会根据项目需求选择并引入相应的Struts2插件,以实现特定的功能,比如使用`struts2-spring-plugin.jar`来整合Spring框架,实现依赖注入,或者使用`struts2-rest-plugin.jar`来支持RESTful...

    struts1.x apps 所有最新的Struts1.x项目应用

    1. **安装和配置**:了解如何在项目中集成Struts1.x框架,配置web.xml和struts-config.xml文件。 2. **Action和ActionForm**:深入理解这两者的作用,如何编写和使用它们。 3. **视图渲染**:熟悉JSP页面和Struts...

    基于eclipse的struts2.x+hibernate3.x+spring3.x整合文档及实例源码

    综上所述,"基于eclipse的struts2.x+hibernate3.x+spring3.x整合文档及实例源码"提供了一个完整的SSH整合教程,通过下载的源码和文档,开发者可以学习并实践SSH的集成,了解每个框架在实际项目中的作用和它们协同...

    Struts2.x整合工具开发包,需要的朋友下载过来学习

    插件架构使得Struts2.x能够轻松地扩展功能,如与Spring、Hibernate等其他框架的集成。 整合Struts2.x通常涉及以下几个步骤: 1. 添加依赖:在项目构建工具(如Maven或Gradle)的配置文件中添加Struts2.x的依赖库,...

    struts1.x 常用知识详解

    1. **Spring**:Struts1.x可以与Spring框架整合,Spring负责管理Action的依赖,提供AOP(面向切面编程)支持。 2. **Hibernate**:结合Hibernate,Struts可以实现持久层操作,提高数据访问效率。 3. **Struts-...

    struts1.x + hibernate 3+spring 3 集成实例

    Struts1.x、Hibernate 3 和 Spring 3 是经典的Java Web开发框架,它们的集成被称为SSH(Struts、Spring、Hibernate)集成。这个"struts1.x + hibernate 3+spring 3 集成实例"是一个空项目,特别适合初学者理解和学习...

    struts1.x多文件上传

    Struts1.x提供了处理多文件上传的功能,使得开发者可以方便地集成到自己的应用程序中。 在Struts1.x中实现多文件上传,主要涉及以下几个核心概念和步骤: 1. **表单设计**:首先,你需要创建一个HTML表单,包含`...

    SSH(Struts2.1+Spring2.X+Hibernate3.X)整合,新手必备

    SSH整合是Java Web开发中的一种常见技术组合,指的是Struts2、Spring和Hibernate三大框架的集成。这三种框架分别在表现层、业务层和服务层扮演重要角色,它们的结合能够帮助开发者构建高效、灵活和可维护的Web应用...

Global site tag (gtag.js) - Google Analytics