课程表

Struts2 教程

Struts2 标签

Struts2 集成

工具箱
速查手册

Struts2 Spring集成

当前位置:免费教程 » Java相关 » Struts2
Spring是当下流行的Web框架,可提供带有许多常见Web任务的简易的集成。那么问题是,当我们有Struts2时,为什么我们需要Spring?因为Spring不仅仅是一个MVC框架,它提供了许多其他在Struts中不可用的好东西。例如:依赖注入可以对任何框架有用。在本章中,我们将通过一个简单的例子来了解如何将Spring和Struts2集成在一起。
首先,你需要将以下文件添加到Spring的项目的构建路径。你可以从http://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 lib目录中添加struts2-spring-plugin-x.y.z.jar到你的WEB-INF/lib中。如果你使用Eclipse,那么你可能会遇到一个异常java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener。要解决这个问题,你应该进到Marker选项卡中右键逐个点击类依赖关系,然后快速修复以发布/导出所有的依赖关系。最后,确保在Marker选项卡下没有可用的依赖冲突。

Struts和Spring集成

现在让我们为Struts-Spring集成设置web.xml,如下所示:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  7. id="WebApp_ID" version="3.0">
  8. <display-name>Struts 2</display-name>
  9. <welcome-file-list>
  10. <welcome-file>index.jsp</welcome-file>
  11. </welcome-file-list>
  12.  
  13. <listener>
  14. <listener-class>
  15. org.springframework.web.context.ContextLoaderListener
  16. </listener-class>
  17. </listener>
  18.  
  19. <filter>
  20. <filter-name>struts2</filter-name>
  21. <filter-class>
  22. org.apache.struts2.dispatcher.FilterDispatcher
  23. </filter-class>
  24. </filter>
  25.  
  26. <filter-mapping>
  27. <filter-name>struts2</filter-name>
  28. <url-pattern>/*</url-pattern>
  29. </filter-mapping>
  30.  
  31. </web-app>

这里需要注意的重点是我们配置的监听器。加载spring上下文文件需要ContextLoaderListener。Spring的配置文件称为applicationContext.xml文件,它必须放置在与web.xml文件相同的级别。
让我们创建一个简单的action类User.java,它有两个属性 - firstName和lastName。

  1. package com.w3xue.struts2;
  2.  
  3. public class User {
  4. private String firstName;
  5. private String lastName;
  6.  
  7. public String execute()
  8. {
  9. return "success";
  10. }
  11.  
  12. public String getFirstName() {
  13. return firstName;
  14. }
  15.  
  16. public void setFirstName(String firstName) {
  17. this.firstName = firstName;
  18. }
  19.  
  20. public String getLastName() {
  21. return lastName;
  22. }
  23.  
  24. public void setLastName(String lastName) {
  25. this.lastName = lastName;
  26. }
  27. }

现在,创建spring配置文件applicationContext.xml并实例化User.java类。如前所述,此文件应在WEB-INF文件夹下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
  3. "http://www.springframework.org/dtd/spring-beans.dtd">
  4. <beans>
  5. <bean id="userClass" class="com.w3xue.struts2.User">
  6. <property name="firstName" value="Michael" />
  7. <property name="lastName" value="Jackson" />
  8. </bean>
  9. </beans>

如上所示,我们已经配置了用户bean,并且我们已经将值MichaelJackson注入到bean中。我们还给这个bean一个名称“userClass”,以便我们可以在别处重新使用它。接下来,让我们在WebContent文件夹中创建User.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <%@ taglib prefix="s" uri="/struts-tags"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  5. "http://www.w3.org/TR/html4/loose.dtd">
  6.  
  7. <html>
  8. <head>
  9. <title>Hello World</title>
  10. </head>
  11. <body>
  12.  
  13. <h1>Hello World From Struts2 - Spring integration</h1>
  14.  
  15. <s:form>
  16. <s:textfield name="firstName" label="First Name"/><br/>
  17. <s:textfield name="lastName" label="Last Name"/><br/>
  18. </s:form>
  19. </body>
  20. </html>

User.jsp文件很简单。它仅用于一个目的:显示用户对象的firstname和lastname的值。最后,让我们使用struts.xml文件将所有实体放在一起。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5.  
  6. <struts>
  7. <constant name="struts.devMode" value="true" />
  8. <package name="helloworld" extends="struts-default">
  9. <action name="user" class="userClass"
  10. method="execute">
  11. <result name="success">/User.jsp</result>
  12. </action>
  13. </package>
  14. </struts>

重点需要注意的是,我们使用id userClass来引用类,这意味着我们使用spring为User类做依赖注入。

现在,右键单击项目名称,然后单击“Export”> “WAR File”以创建WAR文件。然后在Tomcat的webapps目录中部署WAR文件。最后,启动Tomcat服务器并尝试访问URL http://localhost:8080/HelloWorldStruts2/User.jsp,将显示以下界面:

Struts和Spring集成

我们现在已经看到如何将两个伟大的框架结合在一起,这就结束了Struts-Spring集成章节。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号