标签:j2ee action 请求转发 请求重定向 xml结果类型
struts2的结果类型:
<action name="loginAction" class="com.itheima.action.LoginAction">
<result name="success" <strong><span style="color:#FF6666;">type="chain"</span></strong>>
<param name="actionName">successAction</param>
<param name="name">${name}</param>
</result>
</action>struts2中的结果类型有以下几种:
<result-types>
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
<result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
<result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
<result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
<result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
<result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
<result-type name="postback" class="org.apache.struts2.dispatcher.PostbackResult" />
</result-types>
dispatcher —— 请求转发到一个页面 (默认),不可以用这种方式转发到一个action
chain —— 一个action请求转发至另一个 action
redirect —— 响应重定向到一个页面,也可以实现响应重定向到action
redirectAction —— 一个action响应重定向至另一个 action
stream —— 文件下载
注意:如果结果类型改成 type = “chain” ,则加了那些携带的参数都不会起到作用,因为chain 是请求转发,还在一次请求内,本来就携带了参数,不需要再去声明,也不可以添加别的参数,不会起到作用,因为一开始表单提交信息后,该次请求的信息以固定。
一般action重定向到jsp,但是有时会重定向到另一个action
首先看下LoginAction.java
package com.itheima.action;
public class LoginAction {
private String name;
public String getName() {
return name;
}
public String execute() {
//名字固化,所以不需要setXXX()方法
name="lcl";
return "success";
}
}
package com.itheima.action;
public class SuccessAction {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
return "success";
}
}
如果重定向时传递参数,有以下几种方式:
<action name="loginAction" class="com.itheima.action.LoginAction">
<result type="redirect">successAction?name=${name}</result>
</action>
<action name="successAction" class="com.itheima.action.SuccessAction">
<result type="redirect">/login.jsp?name=${name}</result>
</action>
<action name="loginAction" class="com.itheima.action.LoginAction">
<result type="redirectAction">successAction?name=${name}</result>
</action>
<action name="successAction" class="com.itheima.action.SuccessAction">
<result type="redirect">/login.jsp?name=${name}</result>
</action><action name="loginAction" class="com.itheima.action.LoginAction">
<result type="redirectAction">
<param name="actionName">successAction</param>
<param name="name">${name}</param>
</result>
</action>
<action name="successAction" class="com.itheima.action.SuccessAction">
<result type="redirect">/login.jsp?name=${name}</result>
</action>
但是下面这种配置不行:
<action name="loginAction" class="com.itheima.action.LoginAction">
<result type="redirect">
<param name="actionName">successAction</param>
<param name="name">${name}</param>
</result>
</action>
<action name="successAction" class="com.itheima.action.SuccessAction">
<result type="redirect">/login.jsp?name=${name}</result>
</action>标签:j2ee action 请求转发 请求重定向 xml结果类型
原文地址:http://blog.csdn.net/m631521383/article/details/40664161