`

Spring分别与Struts1.x 和Struts2.x集成方法

 
阅读更多
Spring分别与Struts1.x 和Struts2.x集成方法




1.整合struts1:
a.可以通过action继承spring提供的ActionSupport来获得spring中的bean,
b.配置struts的过程处理器cotroller类为spring的org.springframework.web.struts.DelegatingRequestProcessor
c.用ActionProxy代理Action,Action继承ActionSupport,每个类里可以有多个处理方法


2.Spring不用去管理struts2,因为struts2是本身有Ioc的特性,更容易和Spring进行整合,获得Spring的环境非常容易,struts2的配置文件中说明bean容器为spring就可以很轻松获得spring中的bean对象



Spring整合Struts1.x详细:
Spring 框架与 Struts 框架集成有三个方案

1.使用spring的ActionSupport类集成Struts
     采用这种方式需要修改Struts中的action,使struts的action继承Spring的ActionSupport,这样action中定义的业务逻辑对象可通过getBean()方法从Spring的应用上下文WebApplicationContext中获得,从而达到集成的效果。不过缺点就是使struts的Action和Spring紧密的耦合在一起。

    下面介绍此方案集成的步骤

    (1).加载applicationContext.xml 有两种方法

       一、通过struts-config.xml文件来加载

      <plug-in className="org.springframework.web.struts.ContextLoaderPlugin">

          <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml">

          </set-property>

      </plug-in>

      二、通过web.xml中配置

      <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/applicationContext.xml</param-value>
      </context-param>
      <servlet>
      <servlet-name>context</servlet-name>
         <servlet-class>
          org.springframework.web.context.ContextLoaderServlet
         </servlet-class>
         <load-on-startup>1</load-on-startup>
      </servlet>

    (2).修改Action  之前继承的父类是Action,需要改成Spring的ActionSupport类,这样就能使用上下文对象获取applicationContext.xml配置文件里的getBean()方法

      ApplicationContext context = this.getWebApplicationContext();

      业务逻辑对象 = context.getBean("idName");

      这样就不需要new来创建对象,把创建的细节很好的封装起来,完全由spring容器plicationContext.xml

      来注入管理

  2.使用spring的Action代理集成Struts
    采用此方法需要建立一个Spring的Action代理,代理Struts的Action,当Struts执行Action时执行这个代理。代理会在Spring应用上下文找到真正的StrutsAction,然后就交给这个Action处理,下面看看步骤

    (1).加载applicationContext.xml 有两种方法

       一、通过struts-config.xml文件来加载

      <plug-in className="org.springframework.web.struts.ContextLoaderPlugin">

          <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml">

          </set-property>

      </plug-in>

      二、通过web.xml中配置

      <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/applicationContext.xml</param-value>
      </context-param>
      <servlet>
      <servlet-name>context</servlet-name>
         <servlet-class>
          org.springframework.web.context.ContextLoaderServlet
         </servlet-class>
         <load-on-startup>1</load-on-startup>
      </servlet>

    (2)修改Action 为所需要的业务逻辑对象定义属性并增加setXXX()方法,这样做目的是为了使用spring的依赖注入。

    (3)修改struts-config.xml文件  修改的内容是<action>元素的type属性值。修改内容为

      type="org.springframework.web.struts.DelegatingActionProxy"

    (4).配置applicationContext.xml

  3..配置struts的过程处理器cotroller类为spring的org.springframework.web.struts.DelegatingRequestProcessor

   修改Struts控制器来继承struts

      为了更直观的在Struts配置文件中显示出Action对应的处理类,可以将Struts配置文件中<action>元素的type属性直接显示为Struts的Action类,执行的时候还会到Spring的上下文中去查找对应的StrutsAction类。

    完成这样的过程需要修改controller,将struts-config.xml中的controller改成org.springframework.web.struts.DelegatingTilesRequestProcessor如果Struts中使用了Tiles组件,则可以使用org.springframework.web.struts.DelegatingTilesRequestProcessor来作为controller。如果Struts没有使用Tiles组件,则可以使用org.springframework.web.struts.DelegatingRequestProcessor来作为controller。

    下面说说步骤:

    (1).加载WebApplicationContext.上下文同以上方法的第一步骤。

    (2).新建一个类 EncodingProcessor 并继承DelegatingRequestProcessor 实现 process()方法同时为了解决乱码问题必须在process()方法上添加两行代码:

     request.setCharacterEncoding(UTF-8);

     response.setContentType("text/html;charset=UTF-8");

    (3).修改struts-config.xml文件,即修改Struts的RequestProcessor控制器

      使用自定义的控制器controller需要在Struts-config.xml文件中对<controller>元素进行配置,代码如下

  <controller processorClass="EncodingProcessor的类路劲"/>





分享到:
评论

相关推荐

    Struts2.X+Hibernate3.X+Spring2.5 整合

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

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

    【标题】"Ext2.1 struts1.x spring 2.x hibernate 2.x" 涉及的技术栈是Web开发中的经典组合,主要包括EXT JS的2.1版本、Struts1.x、Spring 2.x以及Hibernate 2.x。这些技术在过去的Web应用程序开发中扮演着重要角色...

    org.springframework.web.struts-3.1.0.M2.jar

    总的来说,`org.springframework.web.struts-3.1.0.M2.jar`是Spring与Struts深度整合的关键,它简化了两者的集成工作,提升了开发效率和应用的可维护性。理解并掌握这个组件的使用,对于提升Java Web开发能力具有...

    java Struts 1.x 框架 Web 开发

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

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

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

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

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

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

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

    Struts1.x+Spring+Hibernate开发实例

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

    struts1.x和struts2.0电子书

    5. **插件架构**: Struts2的插件架构使得扩展和集成其他框架(如Spring、Hibernate)变得非常容易。 这两本书籍分别涵盖了Struts1.x和Struts2.0的基础知识、高级特性和最佳实践。《Struts2.0中文帮助手册.chm》将...

    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 常用知识详解

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

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

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

    struts2.x jar

    1. **Struts2核心库**:`struts2-core.jar`是框架的基础,包含了Action、Interceptor、Result等核心概念的实现,以及Struts标签库和配置解析器。 2. **插件库**:如`struts2-convention-plugin.jar`用于自动配置...

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

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

    org.springframework.web.struts-sources-3.0.4.RELEASE.jar

    总之,`org.springframework.web.struts-sources-3.0.4.RELEASE.jar`是Spring与Struts集成的关键,它使得开发者能够在享受Struts的MVC架构的同时,充分利用Spring的强大功能,提升项目的质量和可维护性。了解和掌握...

    Struts2.X 及于spring集成的jar

    1. **添加依赖**: 首先,在项目中添加Struts2和Spring的库。对于Struts2.1.6版本,你需要包含`struts2-spring-plugin-2.1.6.jar`,这是Struts2与Spring集成的插件。同时,还需要Spring的相关jar,如`spring-context-...

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

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

    Spring3-MVC与Struts2.x比较.docx

    Spring MVC 和 Struts2.x 是两个广泛使用的Java Web开发中的MVC框架,它们各自具有不同的特点和优势。这里我们将深入探讨这两个框架的核心组件、工作原理以及它们之间的对比。 首先,让我们了解一下Spring MVC。...

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

    Struts1.x、Spring 和 Hibernate 是Java Web开发中经典的“SSH”框架组合,它们各自承担着不同的职责。Struts1.x 是一个 MVC 框架,负责处理用户请求和业务逻辑;Spring 提供了依赖注入和面向切面编程,简化了组件的...

    struts in action (struts1.x)

    `Struts 1.x` 可以很好地与其他开源技术集成,如Hibernate(持久层)、Spring(依赖注入)等,形成强大的企业级应用开发解决方案。 通过学习 `Struts 1.x`,开发者可以掌握Web应用程序的基本架构,理解MVC模式的...

Global site tag (gtag.js) - Google Analytics