`
8366
  • 浏览: 807054 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

第28讲--Struts与Spring集成方案2(Spring集成Struts)

阅读更多

 

 

集成步骤:

 

1.和方案1一样需要在web.xml 中配置 spring的 listener

 

<context-param>
  	<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找
  	     配置文件有多个的时候可以使用 , 来分隔,ContextLoaderListener 实例化pring容器后,会把它放到Application
  	     范围内
  	 -->
	   <param-name>contextConfigLocation</param-name>
	   <param-value>classpath:beans.xml</param-value>
	</context-param>
	<!-- 对Spring容器进行实例化 -->
	<listener>
	      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

 

 

2. 修改struts-config.xml,给struts 配置一个action的处理器,是由spring来实现的,去掉atcion的 type属性,因为这个时候action的实例化是由Spring实例化的

 

<?xml version="1.0" encoding="ISO-8859-1" ?>
<struts-config>
<action-mappings>   

  	  <action  path="/list"
                  
  	       
  	         scope="request" 
  	         validate="false"
  	  >
		
	<forward name="list" path="/personlist.jsp"></forward>			
  	 </action>
  	 </action-mappings>
  	 <controller>
 		<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
	</controller> 

  	 
  
</struts-config>

 

3.在beans.xml 中配置 action

 

<bean name="/list" class="cn.com.xinli.web.action.PersonAction"/>

 

action交给spring管理后,我们可以使用依赖注入在action中注入业务层的bean。确保actionpath属性值与bean的名称相同。
struts配置文件中添加进spring的请求控制器,该请法语控制器会先根据actionpath属性值到spring容器中寻找跟该属性值同名的bean。如果寻找到即使用该bean处理用户请求 ,如果你也在struts的配置文件中配置了action的type属性,那么只用当spring找不到同名的bean的时候才会使用struts配置文件中的action的type值去实例化action
4.在action中使用依赖注入 (注解方式)得到业务bean
package cn.com.xinli.web.action;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import cn.com.xinli.service.PerService;

public class PersonAction extends Action
{
	@Resource PerService perService;
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception
	{
		
		//方式1
		//得到spring容器实例
		//WebApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
		//PerService perService=(PerService)ctx.getBean("personService");
		
		
		//方式2 使用依赖注入
		
		request.setAttribute("persons", perService.getPersons());
		return mapping.findForward("list");
		
	}	
	
}
 

 

 

 附件中是项目的文件,其中lib目录只别上节内容多了一个 spring-webmvc-struts.jar ,这是spring截获Struts的action来处理请求的处理器的实现

 

 

 

 

 

 

分享到:
评论

相关推荐

    第27讲--Struts与Spring集成方案1(Struts集成Spring)

    在"第27讲--Struts与Spring集成方案1(Struts集成Spring)"中,我们主要探讨如何将Struts2与Spring进行整合。集成的主要目的是利用Spring的强大功能来管理Struts2中的Action类,从而实现更灵活的依赖注入和更好的控制...

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    `struts2-spring-plugin-2.5.16.jar`是Struts2与Spring集成的插件,它使得Struts2可以利用Spring的依赖注入(DI)和面向切面编程(AOP)能力。通过这个插件,我们可以将Action类的实例化和管理交给Spring容器,从而...

    spring-mybatis-struts2-master ——demo

    本篇文章将深入探讨这个经典组合的集成过程,并以"spring-mybatis-struts2-master"项目为例,解析其主要代码,帮助开发者更好地理解和应用SSM框架。 一、Spring框架 Spring作为核心容器,负责管理对象的生命周期和...

    spring-webmvc-struts.jar

    spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包

    《企业应用架构设计-Struts2 Hibernate3 Spring 2》谢星星 第十九章整合源码

    第十九章的主题是“Struts2 Hibernate3整合源码”,这涉及到Java Web开发中的核心技术和实践。以下是关于这个主题的详细知识点: 1. **Struts2框架**:Struts2是基于MVC(Model-View-Controller)模式的Java Web...

    struts-spring-other-lib 等jar包

    struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-...

    JavaWeb-Hibernate-Struts2-Spring2

    在这个"JavaWeb-Hibernate-Struts2-Spring2"项目中,我们主要关注四个关键的技术:Hibernate、Struts2、Spring2以及JavaWeb相关的基础知识。下面将详细阐述这些技术的知识点。 **Hibernate** 是一个流行的Java持久...

    struts2-spring-plugin-2.3.4.jar

    Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    struts2-spring-plugin-2.2.1.jar

    **Struts2与Spring的集成** 在没有Struts2-Spring-Plugin的情况下,要在Struts2应用中使用Spring,需要手动配置Action类与Spring Bean之间的关联。而有了这个插件,配置过程变得更加简单。以下是Struts2-Spring-...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书

    Spring框架则是企业级Java应用的核心容器,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,可以与其他框架如Struts和Hibernate无缝集成。Spring还包含了用于数据访问、Web应用、事务管理等模块,极大地简化了...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取Session,执行数据库操作,但这种方式不推荐,因为容易导致事务管理复杂。推荐使用Spring的Hibernate支持来整合。 5. **jar包的使用**: - 在SSH...

    struts+spring集成

    3. **配置集成**:在Struts2的配置文件中,我们需要声明一个Struts2-Spring插件,它允许Struts2与Spring进行通信。同时,在Spring的配置文件中,需要定义Action类的bean,并配置好相关属性和依赖。 4. **AOP结合**...

    Spring-整合-Struts2

    - **加入 Spring 插件**:在Struts2中集成Spring插件,以实现Action的注入。 - **配置 Struts2 的 Action 实例**:在Spring配置文件中声明Action实例。 - **配置 Struts2 的 action 映射**:在`struts.xml`文件中...

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例(5) 随书源码

    &lt;精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例&gt;源码和数据库。这是第5卷,请下载完7卷后解压。

    struts2 spring hibernate集成

    **Struts2与Spring的集成** 主要是通过Spring插件实现,这使得Action类可以作为Spring的bean管理,实现依赖注入。这样,Action类可以直接注入服务层(Service)和DAO(数据访问对象)层的bean,简化了代码结构,增强...

    SSH\\others\\struts2-spring-plugin-2.2.1.jar

    在给定的压缩包文件中,我们关注的是"struts2-spring-plugin-2.2.1.jar",这是一个插件,它将Struts2框架与Spring框架集成。 Struts2 Spring Plugin是Struts2框架的一个重要组成部分,它的主要作用是允许开发者在...

    struts2与spring2的整合

    4. **Spring插件**:在Struts2中使用Spring插件(struts2-spring-plugin),这个插件能够帮助Struts2与Spring进行交互,自动将Action类实例化并注入依赖。 5. **Action类**:Action类需要实现Spring的`org.spring...

Global site tag (gtag.js) - Google Analytics