2015-01-21 39 views
0

我在一個EAR中有3場戰爭。 一旦用戶點擊頁面中的鏈接,控制轉到bean並且業務邏輯決定用戶將被導航的位置。結果頁面可以在三次戰爭中的任何一次。通過bean從一個戰爭導航到另一個JSF

另外我需要請求URL,以便我可以導航用戶返回請求頁面,如果他們決定點擊取消鏈接。

我可以導航使用JSF的faces-config.xml中 e.g定義導航:

<from-view-id>/GeneralInfo.xhtml</from-view-id> 
     <navigation-case> 
      <from-action>#{registrationBean.goToLogin}</from-action> 
      <from-outcome>Success</from-outcome> 
      <to-view-id>/LoginInfo.xhtml</to-view-id> 
     </navigation-case> 

但這導航將被限制爲單戰內頁之間的導航。

第二個選項是使用面重定向它甚至可以在第三方服務器的URL 如重定向:FacesContext.getCurrentInstance().getExternalContext().redirect('login.xhtml')

使用第二個選項使用下面的代碼

FacesContext.getCurrentInstance().getExternalContext().getRequest().getRequestURL(); 

我的問題是我無法檢索請求的URL,是他們的第三種選擇,我可以導航到另一場戰爭(擁有JSF配置)的頁面,並且也可以獲得請求的URL。

讓我知道是否有其他需要。

謝謝

+0

你是什麼題? – Eelke 2015-01-21 08:23:42

回答

1

您不能使用JSF導航案例轉到其他應用程序上下文中的頁面。所以發送重定向是唯一的選擇。如果你想與重定向一起傳遞額外的參數,然後將它們作爲請求的查詢字符串參數:

String from = request.getRequestURL().toString(); 
externalContext.redirect("/othercontext/login.xhtml?from=" + URLEncoder.encode(from, "UTF-8")); 

其他應用程序就可以只重定向回如下:

String from = request.getParameter("from"); 
externalContext.redirect(from); 
相關問題