zoukankan      html  css  js  c++  java
  • 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



  • 相关阅读:
    Spring学习(一):理解IoC容器
    Spring学习(零):我们为什么要学习Spring
    git push提交报错,提示文件过大,且去掉大文件也报同样的错误
    There was a problem with the instance info replicator
    Eureka配置instanceId显示IP
    Cannot execute request on any known server或DiscoveryClient_UNKNOWN/DESKTOP-MQ8D0C9:8761
    Hexo优化 | 创建sitemap站点地图并向Google提交
    matlab与python读取tiff文件
    Visual studio中编译和使用libpng和zlib
    关于softmax、argmax、softargmax
  • 原文地址:https://www.cnblogs.com/lnzr/p/4164503.html
Copyright © 2011-2022 走看看