struts2框架和springmvc框架差不多,spring与struts2整合并不难,spring struts2整合需要做如下操作:
1:创建struts2项目,引入struts2与spring的整合jar包,ssh框架整合jar包如下:http://www.tpyyes.com/a/javaweb/2016/1006/20.html。
2:在web.xml文件中定义ContextLoaderListener监听器,用于监听spring项目的启动。
3:在struts.xml文件中定义struts2的bean action,用于转发页面。
4:在applicationContext.xm文件中配置数据库连接信息,事务等,本案例只用来注入数据
5:在action中书写页面跳转,传参等,例如本案例做login登录跳转。
本spring struts2整合案例中涉及到如下这几个文件:
index.jsp
web.xml
struts.xml
applicationContext.xml
Login.java
welcome.jsp
步骤一:在index.jsp页面中写一个login登录框,使用了struts2的标签,代码如下。
<%@ taglib uri="/struts-tags" prefix="s"%> <s:form action="login"> <s:textfield name="userName" label="UserName"></s:textfield> <s:submit></s:submit> </s:form>
步骤二:在web.xml文件中配置spring ContextLoaderListener监听器,以及url-pattern等。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
步骤三:配置struts.xml,在action里面配置页面的跳转,访问login就会跳转到welcom.jsp页面,代码如下:
<?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> <package name="userLogin" extends="struts-default"> <action name="login" class="com.tpyyes.login"> <result name="success">welcome.jsp</result> </action> </package> </struts>
步骤四:在login.java中实现action跳转,默认执行的是该类的execute()方法,根据返回的“success”字符串跳转到welcom.jsp页面,代码如下。
package com.tpyyes; public class Login { private String userName,message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } //默认执行该方法 public String execute(){ return "success"; } }
步骤五:在applicationContext.xml文件中set注入message属性值,代码如下:
<?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-2.5.xsd"> <bean id="login" class="com.tpyyes.Login"> <property name="message" value="Welcome Spring"></property> </bean> </beans>
步骤六:在welcome.jsp登录结果界面中输出登录用户名和欢迎信息,代码如下:
<%@ taglib uri="/struts-tags" prefix="s"%> Welcome, <s:property value="userName"/><br/> ${message}
当我们访问自己项目的时候,点击submit登录,则会跳转到welcome界面,index.jsp默认可以不用写,如图:
登录成功之后的输出结果: