result
- result是action的子节点
- result代表action执行方法后,可能去的目的地
- 一个action可以配置多个result子节点
- result的name属性对应着action方法的一个返回值
result的type属性
- dispacher(默认的):转发
- redirect:重定向到页面(也可以重定向到action)
- redirectAction:重定向到action
- chain:转发到action
<action name="TestResultAction" class="cn.zc.cris.test.result.TestResultAction">
<!-- 默认就是dispacher,即请求转发 -->
<result name="1" type="dispatcher">/result/1.jsp</result>
<!-- 重定向到页面 -->
<result name="2" type="redirect">/result/2.jsp</result>
<!-- 重定向到另外一个action的两种方式
<result name="3" type="redirect">/zc-cris/testAction.do</result>
-->
<result name="3" type="redirectAction">
<param name="actionName">testAction</param>
<param name="namespace">/zc-cris</param>
</result>
<!-- 转发到下一个action,还保留上个action的信息,只能通过这种方式 -->
<result name="4" type="chain">
<param name="actionName">testAction</param>
<param name="namespace">/zc-cris</param>
</result>
</action>
</package>
<package name="testResult" extends="struts-default" namespace="/zc-cris">
<action name="testAction" class="cn.zc.cris.test.result.TestAction">
<result>/result/4.jsp</result>
</action>
</package>
public class TestResultAction {
private Integer num;
public void setNum(Integer num) {
this.num = num;
}
public String execute() {
String result = null;
if(this.num % 4 == 0) {
result = "1";
}else if(this.num % 4 == 1) {
result = "2";
}else if(this.num % 4 == 2) {
result = "3";
}else {
result = "4";
}
return result;
}
}