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的整合为Java Web开发提供了一个强大、灵活的解决方案,让开发者能够更专注于业务逻辑,而不是框架的底层实现。通过合理的配置和使用这个jar包,开发者可以快速构建出稳定、高性能...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
通过以上步骤,你就能完成一个基本的JPA+Spring+Struts整合应用。这种整合方式能充分利用每个框架的优点,提高代码的可维护性和可扩展性,降低开发复杂度。在实际项目中,你可能还需要考虑异常处理、安全控制、性能...
### Spring与Struts整合的三种主要方式 在Java Web开发领域,Spring框架和Struts框架都是非常重要的技术。Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)功能,为Java应用提供了轻量级的解决方案。而...
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...
### SSH框架整合详细步骤(spring+struts2+hibernate) #### 一、整合概述 在现代Web应用开发中,SSH(Struts2、Spring、Hibernate)框架因其各自独特的功能和优势,常被组合使用以构建高效、稳定且易于维护的系统...
Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子
"Spring+Struts2+MyBatis整合"是一个常见的Java Web开发组合,旨在提供强大的控制层、灵活的数据访问以及良好的企业级服务。下面将详细介绍这三个框架以及它们整合的关键点。 **Spring框架**是Java应用开发的核心...
compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发
最简单的Spring+Struts2+Hibernate整合例子,MySql数据库,IDE是JavaEE版的Eclipse,tomcat7.0 ,实现功能:登录+注册+增删改查+一键清空数据库表的数据。所有jar文件都在里面了。
SSM(Spring+Struts2+Mybatis)整合步骤 纯手写
通过Spring,可以将CXF和Struts2整合起来,使得各个组件之间的协作变得更加流畅。 【Struts2】是ActionServlet的一个实现,用于处理HTTP请求。Struts2.3.4版本包含了一些关键改进,如增强了拦截器的灵活性,提供了...
**Spring、Struts2 和 iBatis 整合详解** 在Java Web开发中,Spring、Struts2 和 iBatis 是三个非常重要的框架。它们分别负责不同层面的任务:Spring 提供了全面的依赖注入(DI)和面向切面编程(AOP),用于管理...
在一个典型的"hibernate+spring+struts"整合项目中,它们的角色如下: - **Struts** 作为前端控制器,接收用户请求,根据配置决定调用哪个业务逻辑方法。 - **Spring** 用于管理依赖注入(DI),包括Hibernate的...
本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...
一个简单的spring+struts+ibatis整合的实例,实现了用户登录,用户登录成功则显示欢迎信息,失败则显示用户名或密码错误,该实例非常简单基础,特别适合新人学习,工程包含了必要的资源包,部署到服务器中及可运行,...
SSH (Spring+Struts2+Hibernate)整合步骤纯手写
"ibatis+spring+struts2 整合开发例子"就是一个典型的Java Web应用集成开发案例,旨在帮助开发者理解和掌握这三大框架的协同工作原理。接下来,我们将详细讨论这三个组件以及它们的整合过程。 Ibatis是一个轻量级的...
在本整合中,Spring 2.5.6版本主要作为业务逻辑的管理和协调者,它可以通过配置文件管理Bean的生命周期,同时与Hibernate和Struts进行无缝集成。 Hibernate 3.2是一个流行的ORM(对象关系映射)工具,它消除了...