`

spring+struts的集成(第二种集成方案,推荐)

阅读更多
spring+struts的集成(第二种集成方案)
原理:将业务逻辑对象通过spring注入到Action中,从而避免了在Action类中的直接代码查询

1、spring和struts依赖库配置
* 配置struts
--拷贝struts类库和jstl类库
--修改web.xml文件来配置ActionServlet
--提供struts-config.xml文件
--提供国际化资源文件
* 配置spring
--拷贝spring类库
--提供spring配置文件
2、因为Action需要调用业务逻辑方法,所以需要在Action中提供setter方法,让spring将业务逻辑对象注入过来
public class LoginAction extends Action {

	private UserManager userManager;
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		LoginActionForm laf = (LoginActionForm)form;
		
		userManager.login(laf.getUsername(), laf.getPassword());
		
		return mapping.findForward("success");
	}

	public void setUserManager(UserManager userManager) {
		this.userManager = userManager;
	}
}

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

<struts-config>
	<form-beans>
		<form-bean name="loginForm" type="com.bjsxt.usermgr.forms.LoginActionForm"/>
	</form-beans>
	
	<action-mappings>
		
		<action path="/logininput"
				forward="/login.jsp"
		></action>
	
		<action path="/login"
				type="org.springframework.web.struts.DelegatingActionProxy"
				name="loginForm"
				scope="request"	
		>
			<forward name="success" path="/success.jsp"/>
		</action>
	</action-mappings>

    <message-resources parameter="MessageResources" />
</struts-config>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,/WEB-INF/applicationContext-*.xml" />
</plug-in>

4、在spring配置文件中需要定义struts的Action,如:
<bean name="/login" class="com.bjsxt.usermgr.actions.LoginAction" scope="prototype">
<property name="userManager" ref="userManager"/>
</bean>
* 必须使用name属性,name属性值必须和struts-config.xml文件中<action>标签的path属性值一致
* 必须注入业务逻辑对象
* 建议将scope设置为prototype,这样就避免了struts Action的线程安全问题
spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	     xmlns:aop="http://www.springframework.org/schema/aop"
	     xmlns:tx="http://www.springframework.org/schema/tx"
	     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
	<bean name="/login" class="com.bjsxt.usermgr.actions.LoginAction" scope="prototype">
		<property name="userManager" ref="userManager"/>
	</bean>
    <bean id="userManager" class="com.bjsxt.usermgr.manager.UserManagerImpl"/>
</beans>
分享到:
评论

相关推荐

    CXF2.1.3+spring3.0+struts2.3.4

    【标题】"CXF2.1.3+spring3.0+struts2.3.4" 描述了集成这三大框架实现Web服务的场景。CXF是一个开源的服务框架,它允许开发人员创建和消费各种Web服务。Spring是Java企业级应用的核心框架,提供了依赖注入和面向切面...

    Spring+Struts的集成(第一种方案)

    在"Spring+Struts的集成(第一种方案)"中,我们通常指的是基于Servlet Filter的集成方式,这种方案将Spring作为应用的核心容器,而Struts作为MVC框架处理HTTP请求。下面我们将详细介绍这个集成方案的具体步骤和关键...

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

    ##### 第二部分:Struts2与Spring进行整合 **Step08:引入Spring框架** - 添加Spring的核心类库到项目中,包括spring-core、spring-context、spring-web、spring-webmvc等。 **Step09:配置Spring容器** - 创建...

    spring+struts+ibatis

    标题中的"spring+struts+ibatis"是指一种经典的Java Web开发架构,也被称为SSM框架。这个架构结合了Spring框架、Struts2框架和iBatis(现在称为MyBatis)来构建高效且可维护的Web应用。下面将详细阐述这三个框架以及...

    spring+struts2+mybatis jar包

    标题中的"spring+struts2+mybatis jar包"指的是一个经典的Java企业级应用程序开发框架组合,通常称为SSM框架。这个框架集合了Spring、Struts2和MyBatis三个核心组件,它们各自负责不同的职责,协同工作以构建高效、...

    Spring+Struts+mybatis

    SSM(Spring、Struts和MyBatis)是Java Web开发中常见的三层架构组合,它将Spring的依赖注入和管理、Struts的MVC模式以及MyBatis的持久层操作结合在一起,提供了一套高效、灵活的开发方案。在本压缩包中,你将找到...

    SSH项目(spring+hibernate+struts2)

    SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...

    Eclipse+Struts2+Spring+MyBatis环境搭建

    ### Eclipse+Struts2+Spring+MyBatis环境搭建知识点详解 #### 一、环境准备与文件下载 在搭建Eclipse+Struts2+Spring+MyBatis开发环境之前,首先需要准备相应的软件包。 - **Struts2**: 下载全包`struts-2.3.3-...

    spring3+struts2+ibatis

    同时,Struts2可以与Spring无缝集成,实现Action类的依赖注入,便于管理和测试。 三、Ibatis:持久层的优雅解决方案 Ibatis与传统的ORM框架不同,它并不完全取代SQL,而是将SQL语句与Java代码解耦,提供动态SQL...

    ssh框架(spring+struts2+hibernate)

    SSH框架,全称为Spring、Struts2和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,数据库持久化,以及强大的前端展示能力,使得开发者能高效地构建...

    spring+struts2+hibernate的完整架包

    Spring、Struts2和Hibernate是Java Web开发中的三大框架,它们各自负责应用程序的不同层面,共同构建了一个强大的企业级应用解决方案。这个"spring+struts2+hibernate的完整架包"应该包含了这三个框架的核心库和其他...

    spring+struts2+easyui项目,可直接导入eclipse运行,包含数据库脚本与jar包说明

    在本项目中,Spring将用于配置和管理数据库连接、事务管理以及与Struts2的集成。 Struts2是基于Model-View-Controller(MVC)设计模式的Web框架,它扩展了经典的Struts1,提供了更灵活的拦截器机制和更强大的结果...

    Spring+Struts2_整合原理

    ### Spring与Struts2整合原理详解 #### 一、整合背景及意义 随着企业级应用需求的日益复杂,单一...通过以上步骤,开发者可以在实际项目中轻松实现Spring与Struts2的集成,构建出功能强大且结构清晰的企业级应用。

    hibernate+spring+struts整合开发jar文件

    Struts2框架包含了struts2-core、struts2-convention、struts2-dojo等组件,这些组件负责处理请求、解析Action配置、提供视图展现以及与第三方库的集成。 整合这三个框架,开发者通常会利用Spring的AOP和DI特性来...

    Struts2+Spring+Hiberate介绍

    在s2sh.pptx这个文件中,可能包含了关于如何集成和使用Struts2、Spring和Hibernate的详细讲解,涵盖了配置文件设置、核心概念解析、实战案例分析等内容。学习这个PPT可以帮助开发者深入理解S2SH架构,提升其在Java ...

    spring+ibatis+struts2+dwr反转部分架包

    在Spring与Struts2集成的场景下,Spring可以作为全局应用上下文,而Struts2负责接收HTTP请求并调用Spring中的业务服务。 4. **Direct Web Remoting (DWR)**:DWR是一种JavaScript库,用于在浏览器和服务器之间进行...

    Hiberbnate+spring+Struts2基于xml整合.doc

    本项目"Hibernate+Spring+Struts2基于XML的整合"就是一种常见的企业级应用框架组合,它旨在提高开发效率,提供良好的架构设计,并简化项目的维护。下面将详细阐述这三个框架的核心功能及其整合过程。 **Hibernate**...

    spring+struts2+hibernate框架

    综上所述,这个项目提供了一个实际的示例,展示了如何在Java Web开发中集成Spring、Struts2和Hibernate三大框架,实现用户登录、单表数据操作、以及通过拦截器和分页功能增强用户体验。通过学习和理解这个项目,...

    基本的spring+hibernate+struts1架构

    Hibernate的缓存机制(如第一级缓存和第二级缓存)提高了性能,降低了数据库的负载。 Struts1则是MVC设计模式的实现,负责处理HTTP请求并分发到相应的控制器、模型和视图。在Struts1中,Action类作为控制器接收请求...

Global site tag (gtag.js) - Google Analytics