2011-11-11 42 views
0

我正在尝试将POST后的操作重定向到Dologin操作以执行两个操作之一。我会通过网址来反映我正在重定向到的操作。但是,该网址仍然保留在我发布的操作中,而不是重定向的操作。下面是Struts.xml部分 - 谢谢Struts 2 - RedirectAction更新Url到重定向的操作

<package name="mobile" namespace="/mobile" extends="struts-default"> 
    <action name="login"> 
     <result>/mobile/login.jsp</result> 
    </action> 

    <action name="home"> 
     <result>/mobile/home.jsp</result> 
    </action> 

    <action name="Dologin" class="action.LoginAction"> 
     <result name="success" type="redirectAction"> 
      <param name="namespace">/mobile</param> 
      <param name="actionName">home</param> 
     </result> 

     <result name="input" type="redirectAction"> 
      <param name="namespace">/mobile</param> 
      <param name="actionName">login</param> 
     </result> 
    </action> 
</package> 
+0

我不知道怎么样,你看到的是可能的。 (另外,不相关,但如果您在命名空间内重定向,则不需要指定命名空间。)S2的哪个版本? –

+0

我还建议把你的JSP放在'/ WEB-INF'下,以禁止直接访问。 –

回答

0

FWIW,我不能重新创建此行为。

您可能还需要干涸包的配置:

<package name="mobile" namespace="/mobile" extends="struts-default"> 
    <action name="login"> 
    <result>/mobile/login.jsp</result> 
    </action> 

    <action name="home"> 
    <result>/mobile/home.jsp</result> 
    </action> 

    <action name="Dologin" class="action.LoginAction"> 
    <result name="success" type="redirectAction">home</result> 
    <result name="input" type="redirectAction">login</result> 
    </action> 
</package> 
0

我已经测试你这里提到什么,它确实反映了在浏览器的URL。如果您使用的是ajax请求,则不会在url中看到更改。如果您也使用html框架,您可能会验证这一点。

它在文档中提到,此结果类型重定向浏览器url,这确实发生。请参阅下面的文档:

http://struts.apache.org/2.0.14/docs/redirect-action-result.html