簡體   English   中英

ZK - 將用戶重定向回上一頁

[英]ZK - redirect the user back to previous page

關於如何干凈利落地將用戶重定向回上一頁的任何想法?

如果前一頁在應用程序本身內,我只關心重定向它們。 我曾想過在用戶的Session中存儲某種DIY歷史,但這看起來並不干凈或不健全。 我知道我們可以使用Executions.sendRedirect(url)重定向用戶,但我不確定獲取上一頁網址的最佳方法。

ZK擁有自己的瀏覽器歷史記錄管理,但我認為在嘗試啟動真正的瀏覽器重定向時不會使用它。

嘗試這個:

// 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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM