struts2的Action Chaining

来源:互联网 发布:树熊网络wifi如何登录 编辑:程序博客网 时间:2024/05/29 14:45
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

0 0
原创粉丝点击