论坛首页 Java企业应用论坛

关于Struts2的action重定向

浏览 6556 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-02-02   最后修改:2011-02-02

"redirect"实现action的重定向:

 

<result name="error" type="redirect">
    Register.action?username=${username}
</result>

 

 "redirectAction"实现action的重定向:

 

<result name="error" type="redirectAction">
    <param name="actionName">Register</param>
    <param name="username">${username}</param>
</result>

 

 或者:

 

<result name="error" type="redirectAction">
    <param name="actionName">
        Register?username=${username}
    </param>
</result>

 

 

看了下"redirectAction"的实现类ServletActionRedirectResult.java,是这样描述的:

 

/**
 * <!-- START SNIPPET: description -->
 *
 * This result uses the {@link ActionMapper} provided by the {@link ActionMapperFactory} to redirect the browser to a
 * URL that invokes the specified action and (optional) namespace. This is better than the {@link ServletRedirectResult}
 * because it does not require you to encode the URL patterns processed by the {@link ActionMapper} in to your struts.xml
 * configuration files. This means you can change your URL patterns at any point and your application will still work.
 * It is strongly recommended that if you are redirecting to another action, you use this result rather than the
 * standard redirect result.
**/
 

 

 

它的意思是建议我使用这种方式来作action的重定向:

 

<result name="error" type="redirectAction">
    <param name="actionName">Register</param>
    <param name="username">${username}</param>
</result>

"This means you can change your URL patterns at any point and your application will still work."

显然这句话是Struts2强烈推荐使用的原因,但是不太能理解这句话。

 

 

   发表时间:2011-02-03  
E文我是不懂啦!不过就我使用来看,这两种方法的区别之一是当变量是中文时,是否乱码的问题。
Register.action?username=${username}这种方式要传中文的话应该要设置下编码格式的。。。貌似是xml的东西啦。。。
至于还有没有其它区别!等待高人呢。。。
0 请登录后投票
   发表时间:2011-02-04  
不是xml格式,历史原因,url传的文字最初是只能用iso8859的字符
其它的要用%20这种形式encode一下。

如果是用param标签,struts可以自动encode,而不需要自己写代码encode后传过去。
* because it does not require you to encode the URL patterns processed by the {@link ActionMapper} in to your struts.xml
0 请登录后投票
   发表时间:2011-02-04  
原来如此。。。谢过。。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics