0

我试图将 POST 到 Dologin 操作后的操作重定向到两个操作之一。我希望 url 反映我重定向到的操作。但是,该 URL 仍然保留在我发布到的操作中,而不是重定向的操作中。下面是 Struts.xml 部分——谢谢

<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>
4

2 回答 2

0

我已经测试了你在这里提到的内容,它确实反映了浏览器上的 url。如果您使用的是 ajax 请求,您将看不到 url 的变化。如果您也使用 html 框架,您可以验证这一点。

文档中提到此结果类型会重定向浏览器 url,并且确实会发生这种情况。请参考以下文件:

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

于 2011-11-14T05:15:59.347 回答
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>
于 2011-11-11T18:19:07.477 回答