2012-02-03 69 views
2

我需要根據用戶所在的頁面在我的JSF2應用程序中顯示或隱藏搜索組件。我試圖通過設置「fromPage」屬性到會話中要做到這一點,比如像這樣:基於頁面顯示/隱藏組件我在

session.setAttribute("fromPage", "aboutUs"); 

這些屬性被設置時在主頁的鏈接,用戶點擊了,我檢查他們在服務該網站的頁面時。當我使用h:commandLinks時,它運行良好。

但是,當我切換到h:link時,停止工作,因爲顯然當頁面呈現時,頁面上h:鏈接的所有「結果」方法都會被調用,所以「fromPage」屬性總是表示最後一個「結果」的方法 - 這對我的目的是沒用的。

那麼,有沒有其他方法可以知道用戶點擊了哪個頁面?我在哪頁上?

回答

2

使用UIViewRoot#getViewId()來了解當前哪些視圖已打開。當前UIViewRoot可通過隱式EL變量#{view}獲得。

<p>Hi user, you're on #{view.viewId}.</p> 

<h:panelGroup rendered="#{view.viewId == '/aboutUs.xhtml'}"> 
    <p>This will be rendered when the current view is aboutUs.xhtml.</p> 
</h:panelGroup> 
+0

太好了。我實際上有導航JSF現在有意義:) – Herzog 2012-02-03 14:35:03

+0

不客氣。 – BalusC 2012-02-03 14:37:41