【问题标题】:struts2 action redirect to "outside" urlstruts2 动作重定向到“外部”url
【发布时间】:2012-10-01 21:29:02
【问题描述】:

我需要我的操作才能重定向到外部 url 地址,例如 http://google.com

现在我有:

<default-action-ref name="home" />
<global-results>
  <result name="redirect" type="redirect">${targetUrl}</result>
</global-results>

如果在 targetUrl 我有 http://google.com 我的操作将调用主页,它不会重定向到谷歌。

我在这里看到了类似的问题 How to do dynamic URL redirects in Struts 2? 但我可以看到只有 url 的最后一部分被用作重定向的目的地。

你能帮帮我吗?

谢谢

【问题讨论】:

    标签: redirect struts2 action httprequest


    【解决方案1】:

    要从拦截器重定向到特定操作,我执行了以下操作:

    response.sendRedirect("specificAction.action");
    return null;
    

    在这种情况下不需要全局结果。

    【讨论】:

      【解决方案2】:

      这将解决您的问题。 从您返回重定向的 Action 类中,targetUrl 应该是该类的成员变量,并且应该具有公共 getter 和 setter。

      public class YourAction extends ActionSupport {
          private String targetUrl;
      
          public String execute() {
               return "redirect";
          }
      
          public String getTargetUrl() {
              return targetUrl;
          }
      
          public void setTargetUrl(String targetUrl) {
              this.targetUrl = targetUrl;
          }
      
      }
      

      【讨论】:

        【解决方案3】:

        您可以使用Http Header 结果类型来做到这一点。这将起作用,因为到浏览器的重定向指令只是一个状态代码加上“位置”标头。

        <result name="startCheckout" type="httpheader">
            <param name="status">303</param>
            <param name="headers.location">${externalUrl}</param>
        </result>
        

        【讨论】:

          猜你喜欢
          • 2011-10-28
          • 2017-12-11
          • 2012-01-10
          • 2012-08-02
          • 1970-01-01
          • 1970-01-01
          • 2018-06-17
          • 2019-04-03
          • 2019-10-23
          相关资源
          最近更新 更多