struts2的Action Chaining

action鏈

框架提供了一種鏈接各種action成爲一個定義好的sequence或者workflow。這個特性通過應用Chain Result到一個給定的action而起作用,
通過ChainingInterceptor來攔截他的目標action調用。
注意:作爲一個規範,action chaining是不被推薦的,可以使用其他的方式,比如Redirect After Post技術。

chain result
chain result是一個返回類型,這個返回類型用他自己的攔截器棧和結果調用一個action。這個攔截器允許一個action將一個請求轉到目標action,然後傳遞源action的狀態
下面一個例子顯示怎麼定義sequence。
<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>

Chaining Interceptor
如果你需要從鏈中的前一個action賦值到當前action,你需要使用ChainingInterceptor。這個攔截器將會從請求賦值原始參數,值棧被傳遞到目標action。源action被值棧
valuestack記住,通過值棧允許目標action訪問前action的屬性,同樣也會使屬性能夠被chain的最後結果使用,如jsp或者velocity page。

使用action chain的一個共同點是需要提供一個尋找列表。因爲這個action從valuestack中得到,他們的屬性在視圖內是可以訪問的。這個功能可以通過在顯示頁面的ActionTag

執行一個action,從而獲得實現。

翻譯自http://struts.apache.org/docs/action-chaining.html

發佈了43 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章