如果很多个action都有一个共同的结果,则可以通过设置一个全局结果集即global-results让大家都能使用。
java class:
import com.opensymphony.xwork2.ActionSupport;
public class ResultAction extends ActionSupport {
private int type;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
@Override
public String execute() throws Exception {
if(type == 1){
return "success";
}else if(type == 0){
return "error";
}else{
return "mainpage";
}
}
}
struts.xml
<package name="result" namespace="/result" extends="struts-default">
<global-results>
<result name="mainpage">/welcome.jsp</result>
</global-results>
<action name="globalresult" class="com.junc.action.ResultAction">
<result name="success">
/Success.jsp
</result>
<result name="error">
/Error.jsp
</result>
</action>
</package>
jsp
<h3>Global Results Test</h3>
<a href="result/globalresult?type=1">success</a><br/>
<a href="result/globalresult?type=0">error</a><br/>
<a href="result/globalresult?type=3">success</a><br/>
这样,即使在action中没有指定一个叫mainpage的result,但只要type不是1或0,最终页面都会转向welcom.jsp。
另外,如果别的package也希望使用这个package的global-results,则需要通过extends继承本package,即在该package的extends后面写上本package的name即可。
如:
<package name="path" namespace="/path" extends="result">
<action name="path" class="com.junc.action.PathAction">
<result name="path">
/path.jsp
</result>
</action>
</package>