Struts基础的页面跳转
刚刚接触struts,在网上找的案例,但是自己一用,就BUG连连,花了挺久的时间,终于走起来了。
jar包
这里按响应顺序来展示文件
首先是第一个跳转的界面
login.jsp:
<form action="login.action">
name<input type="text" name="user_name">
<input type="submit" value="jumen">
</form>
解释:一个文本框和一个提交按钮,提交后,我们要捕获以.action结尾的事件,所以需要拦截器
web.xml拦截器:
<display-name>Struts1</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>
解释:这里拦截之后进入org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。这里面预设了一些东西,把我们的响应跳转到一个规定名称的文件下,struts.xml,所以我们必须要有这样一个文件
在src下面创建的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>
<constant name="struts.devMode" value="true" />
<!-- 指定每次请求到达,重新加载资源文件 -->
<constant name="struts.i18n.reload" value="true"/>
<!-- 指定每次配置文件更改后,自动重新加载 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 把主题配置为simple -->
<constant name="struts.ui.theme" value="simple"/>
<package name="Struts" extends="struts-default" namespace="/">
<action name="login" class="com.oumyye.action.LoginAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
解释:这里我们设置一些加载配置和跳转的位置<action name="login" class="com.oumyye.action.LoginAction">。那么我们就要有一个叫com.oumyye.action的包,包里还要有个LoginAction的类用来获取响应的数据,在加上一个success.jsp的页面来显示数据
com.oumyye.action.LoginAction:
package com.oumyye.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private static final long serialVersionUID = 1L;
HttpServletRequest request = ServletActionContext.getRequest();
@Override
public String execute() throws Exception {
String name=request.getParameter("user_name");//获得user_name
request.setAttribute("name",name);//设值
return SUCCESS;
}
}
解释:这里要继承ActionSupport,并使用execute方法来接收和返回数据
success.jsp:
<body>
欢迎 ${name} 跳转成功!!
</body>
解释:显示传输过来的信息