2011-04-04 57 views
4

我正在尋找一個很好的解釋JSF 2.0隱式導航以及它如何處理視圖。更確切地說,我明白從一個動作方法我可以返回一個字符串,這是行動的結果。如果有一個JSF視圖的文件名與結果匹配,那麼這是隱式導航。JSF 2.0隱式導航,不同視圖

現在......我的問題是,如果動作是從文件夾內的視圖調用的,但是我想導航到下一個視圖的視圖是在不同的文件夾中呢?即,來自/manager/edit.xhtml的動作被調用。什麼字符串應該返回的行動,以便導航可以安全地去/user/list.xhtml/index.xhtml/manager/index.xhtml

回答

1

據我所知,JSF只在當前上下文中查找匹配的視圖。您可能必須在faces-config.xml中定義導航規則以特殊方式處理結果。這裏是一個例子:

<navigation-rule> 
     <from-view-id>/profiles/viewkeypages.xhtml</from-view-id> 
     <navigation-case> 
      <from-outcome>editkeypage</from-outcome> 
      <to-view-id>/users/editkeypage.xhtml</to-view-id> 
      <redirect /> 
     </navigation-case>  
</navigation-rule> 

-Praveen。

+1

你好普利文。 對,這就是我到目前爲止所做的,我只是想驗證這一點。我的意思是,只是我讀過的參考文獻和我遇到的博客都提到了隱式導航的好處,但它們並不能說明它不能代替導航規則**,這是因爲隱式導航只能工作爲當前情況下的意見。即使在一個具有少量視圖的小型Web應用程序中,我們也應該將它們組織到目錄中,從而創建上下文。 **我想確認導航到不同的上下文需要使用導航規則。** – Alvaro 2011-04-05 16:43:14

0

您可以使用隱式導航訪問其他文件夾中的視圖。

只是做在一個視圖中是這樣的:

<h:link value="Move" outcome="#{request.contextPath}/users/editkeypage.xhtml?faces-redirect=true" /> 

<h:link value="Move" outcome="https://stackoverflow.com/users/editkeypage.xhtml?faces-redirect=true" /> 
+1

在簡單的GET鏈接上,「faces-redirect = true」如何使用? – BalusC 2012-02-01 13:26:31

+0

那麼這部分可能不是必需的,但你可以從1個文件夾中的視圖轉到另一個文件夾中的視圖,這正是我所需要的。我只是複製並粘貼了一個我曾經忘記刪除那個片斷的例子。 – Catfish 2012-02-01 14:13:59