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>

 

访问路径:

Struts2动态结果集/带参数的结果集 - 盡頭 - 深山憨娃
 
 
打开Dubug.可以看到parameters中的值:
Struts2动态结果集/带参数的结果集 - 盡頭 - 深山憨娃
 

 

在jsp页面中,通过OGNL表达式访问就行了。