result元素的redirect-action结果类型主要用于当一个Action处理结束后,将请求重定向到另外一个Action。它和redirect结果类型一样,会重新生成一个新的请求,而且Action处理结果以及请求的所有参数都会丢失,只是redirect-Action结果类型生成的请求是一个Action,而redirect结果类型生成的请求是一个jsp资源。
具体运用起来有两种方式:
<action name="login" class="com.action.LoginAction">
<!-- redirectAction返回类型 -->
<result type="redirectAction">
<!-- Action名参数 -->
<param name="actionName">userLogin</param>
<!-- 命名 空间参数-->
<param name="namespace">/user</param>
<param name="username">${username}</param>
</result>
<!-- 返回值为error, redirectAction类型,重定向到名为error的Action-->
<result type="redirectAction">error</result>
</action>
一个action可以有多个result,result的name属性值即为action对应方法的返回值,如果不指定则默认为success。这个时候如果配置了多个result并且都没指定name属性的话,程序在处理时会根据最后一个result去找到对应资源。
对于第一种方式,刚接触时在考虑这个名称为actionName的参数是否必须得这样写,后来起服务试了下,参数名称拼还是得这么拼,只是大小写没做限制。
Struts2中,result元素的redirect-action结果类型用于Action处理后重定向到另一Action。它会生成新请求,丢失Action结果及所有参数。redirectAction有两种用法:1. 指定Action名和命名空间;2. 通过返回值重定向到error等预定义Action。若未指定result的name属性,程序默认使用success。
202

被折叠的 条评论
为什么被折叠?



