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

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

Struts2与Spring整合后,可以使用Spring的配置文件applicationContext.xml来描述依赖关系,在Struts2的配置文件struts.xml来使用Spring创建的bean。

 

1、导入依赖包

除了导入Struts2和Spring的核心库之外,还要导入commons-logging和struts2-spring-plugin包,否则启动会出异常

 

2、web.xml的配置

既然有Struts2,核心拦截器的配置是不可少的

struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*

 

通过配置ContextLoaderListener监听器,使容器启动时,自动加载applicationContext配置,

因为它实现了ServletContextListener这个接口,容器启动时会自动执行它实现的方法。

org.springframework.web.context.ContextLoaderListener

 

默认情况下,会加载WEB-INF/applicationContext.xml这个文件,我们可以通过配置contextConfigLocation参数改变配置文件的路径

 

 

contextConfigLocation
WEB-INF/classes/applicationContext.xml

以上配置均在web.xml文件的<web-app></web-app>区域

 

3、测试类

在浏览器请求一个Action方法,在Action方法内向一个对象请求一个List,然后转到index.jsp页面,在页面中输出Action请求到的List。

通过Spring依赖配置,控制Action请求的对象。

首先要编写一个接口,Action方法依赖这个接口,通过调用接口中的方法获取List

public interface IocTestInterface {     public List getList();}

下面编写Action类,这个类继承ActionSupport类,并覆盖其中的execute方法,

execute方法执行时,调用实现了上述接口对象的getList方法获取List

public class IocAction extends ActionSupport {	private IocTestInterface iti;	private List list;		public List getList() {		return list;	}	public void setList(List list) {		this.list = list;	}	public IocTestInterface getIti() {		return iti;	}	public void setIti(IocTestInterface iti) {		this.iti = iti;	}		public String execute() throws Exception {		this.setList(iti.getList());		return super.execute();	}}

编写用来显示运行结果的jsp文件

遍历list,并将每个元素作为一行来显示

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags" %>        This is my JSP page. 
  • 系统的结构就是这样。下面编写两个实现IocTestInterface接口的类,用来提供数据

    public class IocTestImpl implements IocTestInterface {	public List getList() {		List l = new ArrayList();		l.add("abc");		l.add("def");		l.add("hig");		return l;	}}

     

    public class IocTest2Impl implements IocTestInterface {	public List getList() {		List l = new ArrayList();		l.add("123");		l.add("456");		l.add("789");		return l;	}}

    4、编写applicationContext.xml配置依赖关系

    文件配置了id为IocAction的bean,路径为刚刚编写的Action类的路径,其中iti对象(请求数据的对象)配置为IocTestImpl(这里使用了匿名bean)

     

    5、编写struts.xml配置文件

    首先要告知Struts 2运行时使用Spring来创建对象

    在<struts></struts>区域加入以下配置

    创建package并配置Action

    /index.jsp

     

    6、发布并运行

    发布后启动Tomcat,用浏览器打开地址,获得了下面的页面

    修改spring配置文件applicationContext.xml中配置

    只是将注入到IocAction中的IocTestImpl修改为IocTest2Impl,也就是使用了另一个实现了IocTestInterface接口的类

    重启服务器,再次打开刚才的地址

    这也就是spring的“控制反转”

    转载地址:http://owill.baihongyu.com/

    你可能感兴趣的文章
    【Android Studio安装部署系列】二十七、Android studio修改项目名称和包名
    查看>>
    【M15】了解异常处理(exception handling)的成本
    查看>>
    一起谈.NET技术,Silverlight 游戏开发小技巧:升级和传送点特效1
    查看>>
    一起谈.NET技术,SharePoint 2010中的单点登录
    查看>>
    vue2的keep-alive的总结
    查看>>
    在部署asp.net时,会出现的两种情况,记下来,以方便以后解决问题。
    查看>>
    (转)http协议
    查看>>
    C#枚举-避免不合理赋值
    查看>>
    Setting up Unicorn with Nginx
    查看>>
    PHP——内测:联系人管理
    查看>>
    How can I create an executable JAR with dependencies using Maven?
    查看>>
    delphi提示错误行号之Assert(断言)
    查看>>
    springmvc 导出excel
    查看>>
    [Cocoa]iOS 开发者账户,联机调试,发布应用事宜
    查看>>
    mac os下通过命令行的方式编译c++代码并在xcode里引用
    查看>>
    [更新]缓存管理的帮助类(MemoryCache版,需要.net 4以上)
    查看>>
    Rafy 领域实体框架演示(2) - 新功能展示
    查看>>
    自行控制loadrunner的socket协议性能测试 (转)
    查看>>
    【ASP】简单Url编码和Url解码实例
    查看>>
    整理OpenResty+Mysql+Tomcat+JFinal+Cannal+HUI
    查看>>