在action中定义一个字符串私有变量。
package com.struts2.user.action;
import com.opensymphony.xwork2.ActionSupport;
public class DemoAction1 extends ActionSupport{
private String name;
private String password;
private String r;
public String execute(){
if(name.equals("admin")){
r="/dyna_result1.jsp"; //根据传递过来的参数来决定r的值,进而来决定返回跳转页面
}else{
r="/dyna_result2.jsp";
}
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getR() {
return r;
}
public void setR(String r) {
this.r = r;
}
}
在action中使用$符号来获取值栈中的r的值。
<package name="demo" extends="struts-default" namespace="/demo">
<action name="demo1" class="com.struts2.user.action.DemoAction1">
<result>${r}</result>
</action>
</package>
值栈中的变量值可以用${[变量值]}来获取。
传参数
一般只有resultType为“redirect”时需要传递参数,因为不是一个request作用域内的内容。跨域需要传递参数。
resultType为“dispatcher”时不需要传递参数,因为还在一个request作用域内。