一:包内的全局<result>标签
<!-- 在这个package中,所有action都可以共用的result -->
<!-- struts-default在jar包中 -->
<package name="xxx" namespace="/xxx" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
</package>
二:动态指定<result>标签
action中要有俩属性:一个负责接收传参,另一个负责传递改写后的url
package com.rt.struts2.actionDemo;
import com.opensymphony.xwork2.ActionSupport;
public class DResultAction extends ActionSupport
{
private int type;//接收传参,根据此值不同,在action内部改写url
private String url;//url会被struts.xml通过${url}读走
public String execute()
{
if(1 == type)//根据传参的不同,动态指定<result>的去向
{
url="/tIS1.jsp";//两页面负责输出即可
}
else
{
url="/tNOT1.jsp";
}
return "success";
}
//setter&getter
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
对应的struts.xml的配置:
通过 ${propertyName} 的表达式,取出了action中的传参:
<package name="dynamicResult" namespace="/" extends="struts-default">
<action name="dr" class="com.rt.struts2.actionDemo.DResultAction">
<result>
${url}<!-- http://127.0.0.1:8080/Struts2Object/dr?type=1 -->
</result>
</action>
</package>