【问题标题】:ZK - redirect the user back to previous pageZK - 将用户重定向回上一页
【发布时间】:2013-07-28 14:27:04
【问题描述】:

关于如何干净、稳健地将用户重定向回上一页有什么想法吗?

如果上一页在应用程序本身内,我只关心将它们重定向回来。我曾考虑在用户的 Session 中存储某种 DIY 历史记录,但这似乎并不干净或健壮。我知道我们可以使用 Executions.sendRedirect(url) 重定向用户,但我不确定获取上一页 URL 的最佳方式。

ZK 有它自己的 Browser History Management,但我认为这在尝试启动 真正的 浏览器重定向时没有用。

【问题讨论】:

    标签: java redirect navigation zk


    【解决方案1】:

    试试这个:

    // check if request needs to be sent back
    if (!isValidRequest()) {
    
      // get the current execution context
      Execution exec = Executions.getCurrent();
    
      // retrieve HTTP request, response objects
      HttpServletRequest request = (HttpServletRequest) exec.getNativeRequest();
      HttpServletResponse response = (HttpServletResponse) exec.getNativeResponse();
    
      // get the referring URL from HTTP header
      String referrer = request.getHeader("Referer");
    
      /* don't need to use this unless doing a forward (server-side)
    
      if (referrer != null) {
        URL ref = new URL(referrer);
        referrer = ref.getPath().substring(request.getContextPath().length());
      } else {
        referrer = "/index.jsp"; // home page
      }
      */
    
      // HTTP 301 redirect (client-side); encoding ensures URL rewriting if required
      response.sendRedirect(response.encodeRedirectURL(referrer));
    
      exec.setVoided(true); // no need to create UI; about to redirect
    }
    

    【讨论】:

    • 你能解释一下这里发生了什么吗?谢谢。
    猜你喜欢
    • 2013-09-24
    • 2020-12-08
    • 1970-01-01
    • 2015-09-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2015-08-15
    相关资源
    最近更新 更多