Struts 2和Spring集成 Struts 2 Ajax标签 Struts 2和Tile集成 Spring是一个流行的Web框架,提供与大量常见Web任务的轻松集成。所以问题是,当我们有Struts2时,为什么我们需要Spring呢?那么,Spring不仅仅是一个MVC框架 它提供了许多在Struts中不可用的其他好东西。 例如:对任何框架都有用的依赖注入。在本章中,我们将通过一个简单的例子来看看如何将Spring和Struts2集成在一起。 首先,您需要将以下文件添加到Spring安装的项目构建路径中。您可以从https://www.springsource.org/download下载并安装最新版本的Spring 框架 org.springframework.asm-x.y.z.M(a).jar org.springframework.beans-x.y.z.M(a).jar org.springframework.context-x.y.z.M(a).jar org.springframework.core-x.y.z.M(a).jar org.springframework.expression-x.y.z.M(a).jar org.springframework.web-x.y.z.M(a).jar org.springframework.web.servlet-x.y.z.M(a).jar 最后,从struts库目录中的 WEB-INF / lib中 添加 struts2-spring-plugin-xyzjar 。 要解决这个问题,你必须进入 Marker 选项卡并逐个点击类依赖关系,并快速修复以发布/导出所有依赖关系。最后确保在标记选项卡下没有可用的相关性冲突。 现在让我们为Struts-Spring集成设置 web.xml ,如下所示 - <?xml version = "1.0" Encoding = "UTF-8"?> <web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0"> <display-name>Struts 2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> 这里要注意的重要一点是我们配置的监听器。所述 的ContextLoaderListener 需要加载弹簧上下文文件。Spring的配置文件被称为 applicationContext.xml 文件,它必须放置在与 web.xml 文件相同的级别 让我们使用两个属性 - firstName和lastName 创建一个名为 User.java 的简单操作类。 package com.CodingDict.struts2; public class User { private String firstName; private String lastName; public String execute() { return "success"; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } } 现在让我们创建 applicationContext.xml spring配置文件并实例化 User.java 类。如前所述,这个文件应该在WEB-INF文件夹下 - <?xml version = "1.0" Encoding = "UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id = "userClass" class = "com.CodingDict.struts2.User"> <property name = "firstName" value = "Michael" /> <property name = "lastName" value = "Jackson" /> </bean> </beans> 如上所示,我们已经配置了用户bean,并且我们已经将值 Michael 和 Jackson 注入了bean。我们还给这个bean命名了“userClass”,以便我们可以在别处重用它。接下来让我们在WebContent文件夹中创建 User.jsp - <%@ page language = "java" contentType = "text/html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Hello World</title> </head> <body> <h1>Hello World From Struts2 - Spring integration</h1> <s:form> <s:textfield name = "firstName" label = "First Name"/><br/> <s:textfield name = "lastName" label = "Last Name"/><br/> </s:form> </body> </html> User.jsp文件非常简单。它只有一个目的 - 显示用户对象的名字和姓氏的值。最后,让我们使用struts.xml文件将所有实体放在一起。 <?xml version = "1.0" Encoding = "UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name = "struts.devMode" value = "true" /> <package name = "helloworld" extends = "struts-default"> <action name = "user" class="userClass" method = "execute"> <result name = "success">/User.jsp</result> </action> </package> </struts> 重要的是要注意的是,我们使用id userClass来引用类。这意味着我们使用spring为User类进行依赖注入。现在右键单击项目名称,然后单击导出> WAR文件创建一个WAR文件。然后将这个WAR部署到Tomcat的webapps目录中。 最后,启动Tomcat服务器并尝试访问URL http:// localhost:8080 / HelloWorldStruts2 / User.jsp。这将产生以下屏幕 - 现在我们已经看到如何将两个伟大的框架结合在一起。这就结束了Struts - Spring集成章节。 Struts 2 Ajax标签 Struts 2和Tile集成