首页 > 学院 > 开发设计 > 正文

Struts2 Result

2019-11-14 22:13:35
字体:
来源:转载
供稿:网友
Struts2 Result

Result类型: 1.dispatcher(默认):服务器跳转到结果页面,jsp页面或者html相当于<jsp:forWord> 2.redirect:重定向到一个页面 3.chain(链条):forword到另外一个Action struts2API example:

        <package name="public" extends="struts-default">                <!-- Chain creatAccount to login, using the default parameter -->                <action name="createAccount" class="...">                <result type="chain">login</result>                </action>                转发到另外一个package中Action                <action name="login" class="...">                <!-- Chain to another namespace -->                <result type="chain">                    <param name="actionName">dashboard</param>                    <param name="namespace">/secure</param>                </result>                </action>            </package>                        <package name="secure" extends="struts-default" namespace="/secure">                <action name="dashboard" class="...">                <result>dashboard.jsp</result>                </action>            </package>

4.redirectAction:重定向到一个Action 5.freemarker 6.httpheader 7.stream(下载) 8.velocity 9.xslt 10.plaintext 11.tiles<global-results>全局结果集该package下的任意一个Action都能使用这个结果集 其他的package只要继承了定义了全局结果集的package,也能使用该结果集

      <package name="user"  namespace="/user" extends="struts-default">        <global-results>            <result name="mainpage">/main.jsp</result>        </global-results>            <action name="user" class="com.zr.struts2.action.UserAction">            <result name="success" >/user_success.jsp</result>            <result name="error" >/user_error.jsp</result>        </action>                </package>                <package name="admin" namespace="/admin" extends="user">            <action name="admin" class="com.zr.struts2.action.AdminAction">                <result name="admin">/admin.jsp</result>            </action>        </package>

动态的results: 

        <package name="user"  namespace="/user" extends="struts-default">               <action name="user" class="com.zr.struts2.action.UserAction">                <result name="success">${r}</result>                       </action>                    </package>    

${r}(专门用在struts2配置文件里面的ogln表达式) 从value stack中取出r的值

 public class UserAction extends ActionSupport {        (对于任何一个Action他对应的属性都会放在Value Stack中,r和type会放在ValueStack中)            PRivate int type;            private String r;            public String getR() {                return r;            }            public void setR(String r) {                this.r = r;            }            public int getType() {                return type;            }            public void setType(int type) {                this.type = type;            }            @Override            public String execute() throws Exception {                if (type == 1) r="/user_success.jsp";                if (type == 2) r="/user_error.jsp";                return "success";            }               }

带参数的result:

 <action name="user" class="com.zr.struts2.action.UserAction">            <result name="success" type="redirect">/user_success.jsp?t=${type}</result>         </action>  

在jsp页面取出t: <s:property value="#parameters.t"/>(重定向ValueStack为null,在Stack Context里面取parameters的值) 如果type=dispatcher<s:property value="type"/>(转发,直接在ValueStack里面取,所以只有重定向才需要传递参数) 补充:一个request请求共享一个ValueStack


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表