Struts2动态结果集
在action中获得相应的参数,通过参数来来态指定需要跳转的页面.
package actions;
import com.opensymphony.xwork2.ActionSupport;
public class Test extends ActionSupport {
private int type;
private String result;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String execute(){
if(type==1) result="/index.jsp";
else if(type==2) result="/delete.jsp";
return SUCCESS;
}
}
配置文件中通过特殊的OGNL表达式(和EL表达式的写法一模一样,这种OGNL表达式,是专门用在配置文件中访问栈值的写法.)访问值栈中(value stack)的result的值:
<package name="" namespace="/test" extends="struts-default">
<action name="test" class="actions.Test">
<result>${result}</result>
</action>
</package>
当访问/test下的test时,带上type=1或者type=2,就会相应的跳转到result指定的值.
带参数的结果集:
实际应用中,很多时候并不是要forward,而是需要redirect.那么可以通过result的类型来进行redirect,同时可以以表达式的方式给参数了.
package actions;
import com.opensymphony.xwork2.ActionSupport;
public class Redi extends ActionSupport {
private int t;
public int getT() {
return t;
}
public void setT(int t) {
this.t = t;
}
public String execute(){
return SUCCESS;
}
}
Struts中的配置:
<package name="redi" namespace="/redi" extends="struts-default">
<action name="redi" class="actions.Redi">
<result type="redirect">/redirect.jsp?t=${t}</result>
</action>
</package>
访问路径:
打开Dubug.可以看到parameters中的值:
在jsp页面中,通过OGNL表达式访问就行了。