一、需要的JAR文件为:Spring和Struts2框架本身需要的JAR文件以及他们所依赖的JAR文件

aaarticlea/png;base64,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" alt="" />

二、在web.xml中增加WebApplicationContext的相应配置,以下两种配置方式本质是一样的。
1.  Servlet 2.3及以上版本可以使用监听器,相应配置如下:
<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>
如果spring配置文件被命名为applicationContext.xml,并且放在WEB-INF目录下,则不需要配置<context-param>,因为ContextLoaderListener默认在WEB-INF目录下寻找名为applicationContext.xml的文件。若存在多个Spring配置文件,则在<param-value>中依次列出,之间以逗号隔开。
2. Servlet 2.3以下版本由于不支持<listener>,需要配置<servlet>,格式如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>contextLoaderServlet</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
如果spring配置文件被命名为applicationContext.xml,并且放在WEB-INF目录下,则不需要配置<context-param>,因为ContextLoaderListener默认在WEB-INF目录下寻找名为applicationContext.xml的文件,或者是名字为contextConfigLocation的ServletContext参数所指定的文件。由于该Servlet配置只是为了在容器启动时能启动ContextLoaderServlet使其工作,而不需要引用该Servlet,所以不需要配置<servlet-mapping>
三,配置struts.xml,如下示例
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- struts.enable.DynamicMethodInvocation = true,-动态方法调用,为true时,就可以在struts.xml配置“*”的通配符,来调用action里的方法 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value=",do" />
<!-- 指定由spring负责action对象的创建 -->
<constant name="struts.objectFactory" value="spring" />
<!-- struts配置文件改动后,是否重新加载 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 设置浏览器是否缓存静态内容 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 该 default package中放置一些公共配置 -->
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/WEB-INF/pages/public/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error" />
</global-exception-mappings>
</package>
<!-- 该 strutsAction package中放置action配置 -->
<package name="strutsAction" namespace="/" extends="default">
<action name="index">
<result>index.jsp</result>
</action>
<action name="helloStrutsAction_*" class="com.vrv.paw.action.HelloStrutsAction" method="{1}">
<result name="{1}">/WEB-INF/pages/helloStrutsAction/{1}.jsp</result>
</action>
</package>
</struts>
四,在web.xml中完成加载WebApplicationContext之后,接下来就可以做到Spring和Struts2的整合了。整合有两种方法,分别叙述如下:
1. 第一种实现方法:(1) 将Struts的业务逻辑控制器类配置在Spring的配置文件,[一般是application.xml]中,业务逻辑控制器中引用的业务类一并注入。
    注意,必须将业务逻辑控制器类配置为scope=”prototype”
示例如下:
<bean id=”LoginAction” class=”yaso.struts.action.LoginAction”>
<property name=”loginDao” ref=”LoginDao”/>
</bean>
           (2)在struts.xml或者等效的Struts2配置文件中配置Action时,指定<action>的class属性为Spring配置文件中相应bean的id或者name值。示例如下:
<action name=”LoginAction” class=”LoginAction”>
<result name=”success”>/index.jsp</result>
</action>
2. 第二种实现方法:(1)业务类在Spring配置文件中配置,业务逻辑控制器类不需要配置,Struts2的Action像没有整合Spring之前一样配置,<action>的class属性指定业务逻辑控 制器类的全限定名。
             (2)业务逻辑控制器类中引用的业务类不需要自己去初始化,Struts2的Spring插件会使用bean的自动装配将业务类注入进来,其实业务逻辑控制器也不是Struts2创建的,而是Struts2的Spring插件创建的。默认情况下,插件使用by name的方式装配,可以通过增加Struts2常量来修改匹配方式:设置方法为:struts.objectFactory.spring.autoWire = typeName,可选的装配参数如下:
  a)         name:等价于Spring配置中的autowire=”byName”,这是缺省值。
  b)        type:等价于Spring配置中的autowire=”byType”。
  c)         auto:等价于Spring配置中的autowire=”autodetect”。
  d)        constructor:等价于Spring配置中的autowire=” constructor”
 
 
 
如果原先在Struts2中使用了多个object factory,则需要通过Struts2常量显式指定object factory,方式如下:struts.objectFactory = spring;如果没有使用多个object factory,这一步可以省略。
可以通过设增加Struts2常量来指定是否使用Spring自身的类缓存机制。可以设定的值为true或false,默认为true。设置方式为:struts.objectFactory.spring.useClassCache = false。

至此,完成了两种方式的整合。比较这两种整合方式,其本质是一样的。不同之处在于,使用第二种自动装配的方式时,由于没有在Spring中配置业务逻辑控制器,所以需要对其配置一些AOP之类的内容时就很难实现了

 
 

整合Struts2与Spring的更多相关文章

  1. 基于注解整合struts2与spring的时候如果不引入struts2-spring-plugin包自动装配无效

    基于注解整合struts2与spring的时候如果不引入struts2-spring-plugin包,自动装配将无效,需要spring注入的对象使用时将抛出空指针异常(NullPointerExcep ...

  2. cpj-swagger分别整合struts2、spring mvc、servlet

    cpj-swagger 原文地址:https://github.com/3cpj/swagger 1. Swagger是什么? 官方说法:Swagger是一个规范和完整的框架,用于生成.描述.调用和可 ...

  3. 搭建SSH框架整合Struts2和Spring时,使用@Autowired注解无法自动注入

    © 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 搭建SSH框架,在进行Struts2和Spring整合时,使用Spring的@Autowired自动注入失败,运行报错java.lan ...

  4. 整合Struts2+SiteMesh+Spring+MyFaces(JSF)+Freemarker的时候启动服务器报错ClassNotFoundException: org.apache.struts2.sitemesh.FreeMarkerPageFilter

    我一琢磨,难道freemarker与struts2的整合也需要添加一个struts2-freemarker-plugin的jar包? 后来找了半天,确认不需要这个. 然后我就上网搜,这个FreeMar ...

  5. 重新学习之spring第四个程序,整合struts2+hibernate+spring

    第一步:导入三大框架的jar包(struts2.3.16.1+hibernate3.2+spring3.2.4) 第二步:编写web.xml 和struts.xml和applicationContex ...

  6. web项目中加入struts2、spring的支持,并整合两者

    Web项目中加入struts2 的支持 在lib下加入strut2的jar包 2. 在web.xml中添加配置 <filter> <filter-name>struts2< ...

  7. Spring第四篇【Intellij idea环境下、Struts2和Spring整合】

    前言 Spring的第二和第三篇已经讲解了Spring的基本要点了[也就是Core模块]-本博文主要讲解Spring怎么与Struts2框架整合- Struts2和Spring的整合关键点: acti ...

  8. Struts2与Spring整合

    前言 本博文主要讲解Spring怎么与Struts2框架整合... Struts2和Spring的整合关键点: action对象交给Spring来创建 搭建环境 进入jar包 引入jar文件: 1)引 ...

  9. struts2+hibernate+spring简单整合且java.sql.SQLException: No suitable driver 问题解决

    最近上j2ee的课,老师要求整合struts2+hibernate+spring,我自己其实早早地有准备弄的,现在都第9个项目了,无奈自己的思路和头绪把自己带坑了,当然也是经验问题,其实只是用myec ...

随机推荐

  1. Drools 规则引擎环境搭建

    一.关于 drools 规则引擎 前面写过一篇 Drools 规则引擎相关的文章,这篇文章主要记录一下规则引擎的环境搭建和简单示例.不熟悉 drools 的朋友可以看看这篇文章: 自己写个 Drool ...

  2. Eclipse下创建Maven项目(转)

    原文出自:http://www.cnblogs.com/hongwz/p/5456616.html 1.新建Maven项目 1.1 File -> New -> Other 1.2 选择M ...

  3. 3.1.7. Cross validation of time series data

    3.1.7. Cross validation of time series data Time series data is characterised by the correlation bet ...

  4. 关于js中的取值问题

    像这样是获取不到值的,弹出的消息是 underfined:<html><style type="text/css">input { border: 1px ...

  5. spark[源码]-任务调度源码分析[三]

    前言 在上一篇文章中,我主要是讲解了DAG阶段的处理,spark是如何将一个job根据宽窄依赖划分出多个stage的,在最后一步中是将生成的TaskSet提交给了TaskSchedulerInmpl的 ...

  6. TOSCA自动化测试工具--openURL

    在folder下面create test case 输入自己的url,actionMode 是input, String类型

  7. Netflix Hystrix — 应对复杂分布式系统中的延时和故障容错 转

    转自 https://segmentfault.com/a/1190000005988895 前言 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为 ...

  8. mybatis家族

    mybatis 优秀的持久层框架,它支持定制化SQL.存储过程以及高级映射. 备注:通过mapper实现数据库与实体类相互映射 MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果 ...

  9. 20145324 《Java程序设计》第5周学习总结

    20145324 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 1.java中所有错误都会被包装成为对象 2.可以使用尝试(try)执行程序并捕捉代表错误的对象后做一些处理 ...

  10. center os7.2 apache+php+mysql环境配置并设置https访问

    本人阿里云购买的center os7.2系统,小程序只支持https,因此需要配置https 安装apache yum -y install httpd systemctl start httpd a ...