chain 结果类型的基本用途是构成一个 action 链: 前一个 action 把控制权转发给后一个 action, 而前一个 action 的状态在后一个 action 中依然保持
chain 结果类型接受下面这些参数:
actionName: 指定目标 action 的名字. 它是默认属性
namespace: 用来指定 “目的地” action 的命名空间. 如果没有配置该参数, Struts 会把当前 action 所在的命名空间作为 “目的地” 的命名空间
method: 指定目标 action 方法. 默认值为 execute
下面给出示例:
<action name="updateFundMethod" class="fzu.edu.controller.fund" method="updateFundMethod">
<result name="select" type="chain">
<param name="actionName">updateFundSelect</param>
<param name="method">updateFundSelect</param>
</result>
<result name="delete" type="chain">
<param name="actionName">updateFundDelete</param>
<param name="method">updateFundDelete</param>
</result>
<result name="update" type="chain">
<param name="actionName">beforeUpdateFundUpdate</param>
<param name="method">beforeUpdateFundUpdate</param>
</result>
</action>
下面是上面各个chain结果类型所用到的action
<action name="updateFundSelect" class="fzu.edu.controller.fund" method="updateFundSelect">
<result>/WEB-INF/content/updateFundPage.jsp</result>
<result name="error">/WEB-INF/content/hello.jsp</result>
</action>
<!-- fundDelete -->
<action name="updateFundDelete" class="fzu.edu.controller.fund" method="updateFundDelete">
<result>/WEB-INF/content/updateFundPage.jsp</result>
<result name="fail">/WEB-INF/content/hello.jsp</result>
</action>
<!-- beforeUpdateFundUpdate显示将修改的信息 -->
<action name="beforeUpdateFundUpdate" class="fzu.edu.controller.fund" method="beforeUpdateFundUpdate">
<result>/WEB-INF/content/updateFundInfo.jsp</result>
</action>
还有我看见一篇对chain分析的比较好的博客:
点击打开链接