天天看点

Spring 4与Struts 2项目基于XML的集成实战 Spring 4与Struts 2项目基于XML的集成实战

本文主要讲述如何将Spring Framework 4.2.1版与Struts 2.3.24.1版通过XML配置进行集成,从而用于Web项目的开发。

Spring是一个企业Java应用开发框架,而Struts 是一个Java Web应用开发框架,这意味着两者可以结合在一起用于开发Web应用。

Spring MVC是Spring框架的一部分,用于建立Java Web应用,而Struts立足于Java Servlet API的基础上也使用了MVC架构。因此,当Spring和Struts相集成时,在MVC部分不应该重叠,而应该相互补充。

Spring框架有一个优秀的依赖注入管理,因此可用于管理业务逻辑Bean和Struts的Action Bean。另一方面,我们可以使用Struts负责Web应用的MVC部分。

Struts 2框架提供了一个名为Spring Plugin的插件,通过此插件可以与Spring框架进行集成。此插件提供了这样的JAR包:struts2-spring-plugin-VERSION.jar,把此文件放入Web项目中。

要启用Spring Plugin插件,让Spring框架通过其反转控制容器来管理Struts的所有Action Bean,在Spring应用持续上下文配置文件中进行声明。这样,在Struts的配置文件中,就可以使用Bean的名字来代替原先的“包名+类名”的方式。比如可以这样:

而原先是这样:

另外,还可以使用Spring框架的@Autowired注释让Spring字段注入依赖进类中。

下面我们开始实战。

本文使用的工具如下:

Spring 4与Struts 2项目基于XML的集成实战 Spring 4与Struts 2项目基于XML的集成实战

修改项目的Facet,调整为Dynamic Web Module (3.0)和Java (1.8) 

Spring 4与Struts 2项目基于XML的集成实战 Spring 4与Struts 2项目基于XML的集成实战

声明Java和Spring框架的版本

添加Spring框架的依赖

添加Struts 2框架的依赖

添加Spring Plugin插件的依赖

添加编译时所需的Java Servlet & JSP依赖

创建名为User.java的模型类

创建名为UserDAO.java的业务逻辑类:

可见,有效的用户名为“admin”,密码为“pwd”。

编写Struts的Action类LoginAction.java

需要理解:

userDao的Setter方法是供Spring注入实际的实现类

成员变量user的getter和setter方法用于表单与模型对象User的一一对应

方法execute()简单的重定向到SUCCESS页面或ERROR页面

创建名为LoginForm.jsp的页面

登录成功的LoginSuccess.jsp页面

登录失败的LoginError.jsp页面

web.xml的内容如下

在项目src下创建struts.xml配置文件

在/WEB-INF/spring目录下创建名为appContext.xml的配置文件。

最终项目结构如图所示: 

Spring 4与Struts 2项目基于XML的集成实战 Spring 4与Struts 2项目基于XML的集成实战

可以看到 

Spring 4与Struts 2项目基于XML的集成实战 Spring 4与Struts 2项目基于XML的集成实战

输入“admin”和“pwd”后,可以看到 

Spring 4与Struts 2项目基于XML的集成实战 Spring 4与Struts 2项目基于XML的集成实战

如果输入错误,可以看到: 

Spring 4与Struts 2项目基于XML的集成实战 Spring 4与Struts 2项目基于XML的集成实战

可见,项目完全工作正常。Spring 4与Struts 2项目基于XML的集成是成功的。

继续阅读