【问题标题】:Struts 2 - RedirectAction to update Url to the redirected actionStruts 2 - RedirectAction 将 Url 更新为重定向的操作
【发布时间】:2011-12-27 05:40:53
【问题描述】:

我正在尝试将 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>

【问题讨论】:

  • 我不确定您所看到的如何可能。 (同样,不相关,但如果您在命名空间内重定向,则不需要指定命名空间。)什么版本的 S2?
  • 我还建议将您的 JSP 放在 /WEB-INF 下以禁止直接访问。

标签: struts2 struts2-namespace


【解决方案1】:

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>

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      • 2015-02-18
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多