`

Spring+Struts整合的四种方式

阅读更多

1.在Action中取得BeanFactory对象,然后通过BeanFactory获取业务逻辑对象

在Action中用BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); 或ApplicationContext factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());取得BeanFactory,通过factory.getBean(""); 获取实例,调用业务逻辑方法 。 

 

web.xml

 

<context-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath*:applicationContext-*.xml</param-value>   </context-param>     <listener>   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>

  

 2、将业务逻辑对象通过spring注入到Action中,从而避免了在Action类中的直接代码查询,web.xml配置同上

在struts-config.xml文件中配置Action   <action>标签中的type属性需要修改为org.springframework.web.struts.DelegatingActionProxy    DelegatingActionProxy是一个Action,主要作用是取得BeanFactory,然后根据<action>中的path属性值    到IoC容器中取得本次请求对应的Action

 

<action path="/notes"   name="admin"   type="org.springframework.web.struts.DelegatingActionProxy" parameter="method"  scope="prototype"/>

在spring配置文件中需要定义struts的Action,如:<bean name="/notes" class="com.qqhr.lh.struts.Action.NotesAction">    <property name="noteService" ref="notesService"></property>  </bean>

      这里的name名称要与<action>标签的path属性值一致 

      将scope设置为prototype,这样就避免了struts Action的线程安全问题

      必须注入业务逻辑对象

       private NoteService noteService ;

 

 3、使用Spring 的 ActionSupport整合Struts, struts-config.xml添加代码如下:

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in>

  Action里继承 Spring 的 ActionSupport 而不是 Struts Action 类扩展如下:

 使用 getWebApplicationContext() 方法获得一个 ApplicationContext

 

public class UserAction extends ActionSupport{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ApplicationContext ctx = getWebApplicationContext(); UserService user= (UserService) ctx.getBean("xhf") ; user.load("邢**","北京"); return null ; } }

 

4、使用Spring 的DelegatingRequestProcessor覆盖Struts 的RequestProcessor

   Struts-config.xml文件修改如下:

  

 <action path="/searchSubmit" type="org.springframework.web.struts.DelegatingActionProxy"   input="/notes.do" validate="true" name="notesForm"> 

 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property   property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in>

 

 

分享到:
评论

相关推荐

    spring+struts2+ibatis整合的jar包

    总的来说,Spring、Struts2和iBatis的整合为Java Web开发提供了一个强大、灵活的解决方案,让开发者能够更专注于业务逻辑,而不是框架的底层实现。通过合理的配置和使用这个jar包,开发者可以快速构建出稳定、高性能...

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

    JPA+Spring+Struts整合实例,JPA+Spring+Struts整合实例

    通过以上步骤,你就能完成一个基本的JPA+Spring+Struts整合应用。这种整合方式能充分利用每个框架的优点,提高代码的可维护性和可扩展性,降低开发复杂度。在实际项目中,你可能还需要考虑异常处理、安全控制、性能...

    Spring + struts 整合的三种主要方式

    ### Spring与Struts整合的三种主要方式 在Java Web开发领域,Spring框架和Struts框架都是非常重要的技术。Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)功能,为Java应用提供了轻量级的解决方案。而...

    spring+struts2+hibernate+mybatis

    一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去

    图书管理系统spring+struts+hibernate

    《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...

    ssh框架整合详细步骤(spring+struts2+hibernate)

    ### SSH框架整合详细步骤(spring+struts2+hibernate) #### 一、整合概述 在现代Web应用开发中,SSH(Struts2、Spring、Hibernate)框架因其各自独特的功能和优势,常被组合使用以构建高效、稳定且易于维护的系统...

    Struts+Spring+Hibernet整合例子

    Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子

    spring+struts2+mybatis整合

    "Spring+Struts2+MyBatis整合"是一个常见的Java Web开发组合,旨在提供强大的控制层、灵活的数据访问以及良好的企业级服务。下面将详细介绍这三个框架以及它们整合的关键点。 **Spring框架**是Java应用开发的核心...

    compass+ibatis+spring+struts2整合开发

    compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发

    最简单的Spring+Struts2+Hibernate整合例子

    最简单的Spring+Struts2+Hibernate整合例子,MySql数据库,IDE是JavaEE版的Eclipse,tomcat7.0 ,实现功能:登录+注册+增删改查+一键清空数据库表的数据。所有jar文件都在里面了。

    SSM(Spring+Struts2+Mybatis)整合步骤

    SSM(Spring+Struts2+Mybatis)整合步骤 纯手写

    CXF2.1.3+spring3.0+struts2.3.4

    通过Spring,可以将CXF和Struts2整合起来,使得各个组件之间的协作变得更加流畅。 【Struts2】是ActionServlet的一个实现,用于处理HTTP请求。Struts2.3.4版本包含了一些关键改进,如增强了拦截器的灵活性,提供了...

    Spring+Struts2+Ibatis整合例子

    **Spring、Struts2 和 iBatis 整合详解** 在Java Web开发中,Spring、Struts2 和 iBatis 是三个非常重要的框架。它们分别负责不同层面的任务:Spring 提供了全面的依赖注入(DI)和面向切面编程(AOP),用于管理...

    hibernate+spring+struts一个简单例子

    在一个典型的"hibernate+spring+struts"整合项目中,它们的角色如下: - **Struts** 作为前端控制器,接收用户请求,根据配置决定调用哪个业务逻辑方法。 - **Spring** 用于管理依赖注入(DI),包括Hibernate的...

    ibatis+Spring+struts2整合实例

    本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...

    spring+struts2+ibatis简单登录实例--特别适新人学习

    一个简单的spring+struts+ibatis整合的实例,实现了用户登录,用户登录成功则显示欢迎信息,失败则显示用户名或密码错误,该实例非常简单基础,特别适合新人学习,工程包含了必要的资源包,部署到服务器中及可运行,...

    SSH(Spring+Struts2+Hibernate)整合步骤

    SSH (Spring+Struts2+Hibernate)整合步骤纯手写

    ibatis+spring+struts2 整合开发例子

    "ibatis+spring+struts2 整合开发例子"就是一个典型的Java Web应用集成开发案例,旨在帮助开发者理解和掌握这三大框架的协同工作原理。接下来,我们将详细讨论这三个组件以及它们的整合过程。 Ibatis是一个轻量级的...

    spring+hibernate+struts整合jar包

    在本整合中,Spring 2.5.6版本主要作为业务逻辑的管理和协调者,它可以通过配置文件管理Bean的生命周期,同时与Hibernate和Struts进行无缝集成。 Hibernate 3.2是一个流行的ORM(对象关系映射)工具,它消除了...

Global site tag (gtag.js) - Google Analytics