博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring整合Struts2
阅读量:6419 次
发布时间:2019-06-23

本文共 3664 字,大约阅读时间需要 12 分钟。

hot3.png

简介:

  1. 由Spring创建并管理Action
  2. 使用Spring的IOC功能将业务类注入Action
  3. Spring容器通过Web容器启动(配置监听器ContextLoaderListener即可完成)

配置

1.导入依赖包

​ 除外(这里用的是struts-2.3.28-all & spring-framework-4.2.5.RELEASE-dist),还要导入struts2-spring-plugin-x.xx.jar。

2.web.xml配置

  • Struts2 核心拦截器配置:
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*

配置监听器ContextLoaderListener

Spring提供一个ContextLoaderListener对象,该类可以作为Web应用的Listener使用,它会在Web应用启动时自动查找WEB-INF/下的applicationContext.xml配置文件(Spring的配置文件),并且根据该文件来创建Spring容器.因此,如果Web应用中只有一个Spring配置文件,并且文件名为"applicationContext.xml",并将该文件放在Web应用的WEB-INF/路径下,则只需在web.xml文件中增加如下一段即可:

org.springframework.web.context.ContextLoaderListener

​ 如果有多个配置文件需要载入,或则applicationContext.xml不在WEB-INF目录下,则应该在web.xml中再使用<context-param>元素来确定配置文件的文件名,内容如下:

contextConfigLocation
classpath:applicationContext*.xml,/WEB-INF/applicationContext.xml

如果spring配置文件被命名为 applicationContext.xml,并且放在WEB-INF目录下,则不需要配置<context-param>,因为ContextLoaderListener默认在WEB-INF目录下寻找名为applicationContext.xml的文件。若存在多个Spring配置文件,则在<param-value>中依次列出,之间以逗号隔开。

最终web.xml配置为:

test
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
index.html
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext*.xml,/WEB-INF/applicationContext*.xml

整合测试

135637_89s8_2321708.png

/index.jsp
Struts2SpringZH
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
index.html
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext*.xml,/WEB-INF/applicationContext*.xml

报错的话将<!-- web.xml -->一行删掉

//TestAction.javapackage test;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.opensymphony.xwork2.ActionSupport;@Controller@Scope("prototype")public class TestAction extends ActionSupport{    public String execute() throws Exception {    System.out.println("TestAction.execute()");    return "success";    }}
//SpringTest.javapackage test;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.TestExecutionListeners;public class SpringTest {    private ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");    @Test    //Struts整合测试    public void testBean() throws Exception{        TestAction testAction = (TestAction) ac.getBean("testAction");        System.out.println(testAction);    }}

运行结果:(出现test.TestAction....说明整合成功)

1240

文/吾君(简书作者)

原文链接:http://www.jianshu.com/p/7055fa640351
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

 

转载于:https://my.oschina.net/u/2321708/blog/817821

你可能感兴趣的文章
降低数据中心能源消耗
查看>>
《Python Cookbook(第3版)中文版》——1.8 与字典有关的计算问题
查看>>
《提高转化率!网页A/B测试与多变量测试实战指南》一2.5 勇气与责任心
查看>>
深入实践Spring Boot3.2 控制器设计
查看>>
《微信小程序:开发入门及案例详解》—— 导读
查看>>
降低JRuby的内存占用的可能方法
查看>>
如何创建和使用Python CGI脚本
查看>>
RHCSA 系列(九): 安装、配置及加固一个 Web 和 FTP 服务器
查看>>
《jQuery、jQuery UI及jQuery Mobile技巧与示例》——3.7 示例:添加函数的返回结果...
查看>>
并发集合(一)引言
查看>>
如何写gdb命令脚本
查看>>
Android ListView展示不同的布局
查看>>
oracle 表(下)
查看>>
iOS宏(自己使用,持续更新)
查看>>
手把手玩转win8开发系列课程(3)
查看>>
NGINX引入线程池 性能提升9倍
查看>>
《淘宝技术这十年》读书笔记 (四). 分布式时代和中间件
查看>>
linux下mongodb定时备份指定的集合
查看>>
SMP架构多线程程序的一种性能衰退现象—False Sharing
查看>>
oVirt JBAS server start failed, ajp proxy cann't server correct. ovirt-engine URL cann't open
查看>>