html
开发一个Spring与Struts 2的整合项目的步骤以下。
java
添加Struts 2框架支持。web
配置web.xml,代码以下:
spring
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Struts_Spring</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> </web-app>
login.jsp代码以下:apache
<%@ page language="java" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <html> <head> <title>登陆界面</title> </head> <body> <s:form action="login.action" method="post"> <s:textfield name="xh" label="学号"/> <s:password name="kl" label="口令"/> <s:submit value="登陆"/> </s:form> </body> </html>
LoginAction.java代码以下:app
package org.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private String xh; private String kl; public String getXh() { return xh; } public void setXh(String xh) { this.xh = xh; } public String getKl() { return kl; } public void setKl(String kl) { this.kl = kl; } public String execute() throws Exception { return SUCCESS; } }
配置struts.xml文件,代码以下:
框架
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <include file="struts-default.xml"/> <package name="default" extends="struts-default" namespace="/"> <action name="login" class="org.action.LoginAction"> <result name="success">/login_success.jsp</result> </action> </package> </struts>
代码以下:jsp
<%@ page contentType="text/html;charset=utf-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <body > <h2>您好! <s:property value=" xh"/>欢迎您登陆成功 </h2> </body> </html>
部署,测试Struts 2是否正常。运行http://localhost:8080/Struts_Spring/login.jsp,在登陆框和密码框中任意输入,单击【登陆】按钮,转向登陆成功界面,并输出登陆名。post
步骤同5.2.2节。测试
注意,必定要加入该包,该包位于Struts 2的lib目录下。
修改web.xml内容,使得程序增长对Spring的支持。
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Struts_Spring</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> </web-app>
10 建立消息包文件struts.properties
在src文件夹下建立struts.properties文件,使得Struts 2的类的生成交给Spring完成。步骤以下:右击项目的src文件夹,在弹出的菜单中选择【New】→【File】菜单项,以后在Enter or select the parent folder中输入struts2_spring/src,在File name栏中写入struts.properties,单击【肯定】按钮。文件内容以下:
struts.objectFactory=spring
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <bean id="loginAction" class="org.action.LoginAction"></bean> </beans>
使得struts 2的类的生成交给Spring完成。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <include file="struts-default.xml"/> <package name="default" extends="struts-default" namespace="/"> <action name="login" class="loginAction"> <result name="success">/login_success.jsp</result> </action> </package> </struts>