有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaZK将用户重定向回上一页

关于如何将用户重定向回上一页的问题有什么想法吗

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

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


共 (1) 个答案

  1. # 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
    }