【web開發學習筆記】Structs2 Result學習筆記(一)簡單介紹

來源:互聯網
上載者:User

標籤:style   blog   java   使用   檔案   os   

Structs2 Result學習筆記(一)簡單介紹問題一
<struts>    <constant name="struts.devMode" value="true" />    <package name="resultTypes" namespace="/r" extends="struts-default">    <action name="r1">    <result type="dispatcher">/r1.jsp</result>    </action>        <action name="r2">    <result type="redirect">/r2.jsp</result>    </action>        <action name="r3">    <result type="chain">r1</result>    </action>        <action name="r4">    <result type="redirectAction">r2</result>    </action>        </package></struts>
    dispatcher -   forward運用伺服器跳轉  伺服器跳轉    顯示action

    redirect   -   重新導向跳轉到jsp

    chain 伺服器跳轉

    redirectAction
問題二    chain跳轉 -> 從一個action,跳轉至另外一個包裡面的action的方法:
<package name="public" extends="struts-default">    <!-- Chain creatAccount to login, using the default parameter -->    <action name="createAccount" class="...">        <result type="chain">login</result>    </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>
    通過例子可以看出,是通過為chain配置actionName參數和namespace參數;
    具體執行個體參見struts-2.1.6/docs/docs/chain-result.html裡面的文檔說明。
問題三;全域Result
//前端htm<body>Result類型<ol><li><a href="user/user?type=1">返回success</a></li><li><a href="user/user?type=2">返回error</a></li><li><a href="user/user?type=3">返回global result</a></li><li><a href="admin/admin">admin,繼承user包</a></li></ol></body>
//struct.xml<struts>    <constant name="struts.devMode" value="true" />    <package name="user" namespace="/user" extends="struts-default">            <global-results>    <result name="mainpage">/main.jsp</result>    </global-results>        <action name="index">    <result>/index.jsp</result>    </action>        <action name="user" class="com.struts2.user.action.UserAction">    <result>/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.struts2.user.action.AdminAction">    <result>/admin.jsp</result>    </action>    </package></struts>
//類包//AdminActionpackage com.struts2.user.action;import com.opensymphony.xwork2.ActionSupport;public class AdminAction extends ActionSupport {@Overridepublic String execute() throws Exception {return "mainpage";}}//UserActionpackage com.struts2.user.action;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private int type;public int getType() {return type;}public void setType(int type) {this.type = type;}@Overridepublic String execute() throws Exception {if(type == 1) return "success";else if (type == 2) return "error";else return "mainpage";}}
分析1
    <package name="user" namespace="/user" extends="struts-default">            <global-results>    <result name="mainpage">/main.jsp</result>    </global-results>        <action name="index">    <result>/index.jsp</result>    </action>        <action name="user" class="com.struts2.user.action.UserAction">    <result>/user_success.jsp</result>    <result name="error">/user_error.jsp</result>    </action>        </package>
這段設定檔中,result 為success時,調用user_success.jsp,result為error時,調用
/user_error.jsp,其餘所有的情況都使用result為mainpage的配置,可以共用這個結果集。
分析二
    <package name="admin" namespace="/admin" extends="user">    <action name="admin" class="com.struts2.user.action.AdminAction">    <result>/admin.jsp</result>    </action>    </package>
extends的作用是從另外一個包裡面繼承配置資訊,工作中使用對項目進行分模組處理,每個模組都有公用的配置資訊,這樣可以將公用配置資訊定義為<global-results>,然後被各個模組繼承,簡化處理。和c++/java中的繼承關係好像啊!
問題四:struct-default解析源檔案在ReferencedLibraries/WebRoot/WEB-INF/lib/struts2-core-2.1.6.jar/struct-default.xml
    <package name="struts-default" abstract="true">
預設定義了攔截器
<default-interceptor-ref name="defaultStack"/><default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
    結論:配置很複雜,使用不需改。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.