在使用动态结果集的时候我们可以在action中设置要动态访问的页面,如:
package com.zeko.action.user.action;
import com.opensymphony.xwork2.ActionSupport;
public class ResultAction extends ActionSupport {
private String s;
private int type;
@Override
public String execute() {
if(type == 1) {
s = "/add_success.jsp";
} else if(type == 2) {
s = "/add_error.jsp";
} else {
s = "/mainPage.jsp";
}
return SUCCESS;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
}
在execute()中我们针对不同情况对s进行赋值,然后在struts.xml文件中可以通过${s}取得相应的值,其实s的值是存在在action的value
stack中的,在配置文件中想要取得value stack中的值要通过${s}获得,但是在jsp文件中要获得value stack中的值需要通过struts2的标
签<s:property value="s">来获得。
<package name="user" namespace="/user" extends="struts-default">
<action name="user" class="com.zeko.action.user.action.ResultAction">
<result name="success">
${s}
</result>
</action>
</package>
此外,${s}的实现依赖了action中getS和setS方法,也就是在ResultAction.java中的getS() setS()方法,如果不提供这两个方法的话会
出现错误。