Struts2跳转

action的配置中,有一个为"redirectAction”(重定向到一个Action)和chain(就是所谓的action请求链)的action类型
顺便说一下struts2的action type:
chain   用来处理Action链
dispatcher  用来转向页面,通常处理JSP
redirect  重定向到一个URL
redirectAction(或redirect-action)   重定向到一个Action

      redirect:重定向,新页面无法显示第一个Action中的数据,因为底层调用的是response.sendRedirect("...")方法,无法共享请求范围内的数据,参数与dispatcher用法相同;
    chain:将action的带着原来的状态请求转发到新的action,两个action共享一个ActionContext,actionName指定转向的新的Action的名字,method指定转向哪个方法,namespace指定新的Action的名称空间,不写表示与原Action在相同的名称空间
    redirect-action:重定向到另一个Action,参数与chain用法相同,允许将原Action中的属性指定新名称带入新Action 中,可以在Result标签中添加 <param name=”b”>${a} </param>,这表示原Action中的变量a的值被转给b,下一个Action可以在值栈中使用b来操作,注意如果值是中文,需要做一些编码处理,因为Tomcat默认是不支持URL直接传递中文的!

示例:
在一下讨论主题下保存讨论意见后,直接跳转到显示该讨论主题下所有的讨论意见页面
<!--保存讨论意见-->
<action name="saveDiscussContext" class="com.discuss.DiscussAction"  
               method="saveDiscussContext">
<result name="success" type="chain"><!--注意type是chain类型-->
    <param name="namespace">/discuss</param>
    <param name="actionName">findDiscussContextBySeqNum</param>
                      <!--actionName是另外一个配置的action  findDiscussContextBySeqNum是查找所有讨论意见的action-->
</result>
</action>

你可能感兴趣的:(struts2)