2010-03-16 75 views
0

我屬於Asp.Net,但剛開始學習JSF。我想知道MasterPage的所有功能在JSF模板中是否可用?我的意思是說,假設我有一個菜單模板,並根據角色菜單的變化。如果管理員登錄,他將顯示更多選項,如果普通用戶登錄,他將看到更少的選項。現在我有一個託管的bean用於「真實」頁面(不是模板)。如何使用此託管bean在模板中打開和關閉控件?JSF模板初學者問題

+1

既然你是JSF的新手,我會好奇你爲什麼選擇JSFTemplating。你爲什麼不直接推出「普通」的Facelets? – BalusC 2010-03-16 11:25:32

+0

Hi BalusC, 我想要一些類似於Asp.Net中MasterPage的東西。我只使用Facelets。我怎樣才能在facelets中實現這個功能?如果你能指點我一些教程,或者如果你能給我簡要的概述,我會非常感激你。 – TCM 2010-03-16 12:18:59

回答

3

您可以像使用ASP MasterPages一樣在JSF/Facelets中執行幾乎所有的操作。您可以使用任何JSF組件的rendered屬性來切換組件是否需要在視圖中呈現。它接受一個布爾表達式,當true時會導致組件(及其所有子組件)被顯示,否則在false時被完全隱藏。下面是幾個例子:

<h:someComponent rendered="#{bean.booleanValue}" /> 
<h:someComponent rendered="#{bean.intValue > 10}" /> 
<h:someComponent rendered="#{bean.objectValue == null}" /> 
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" /> 
<h:someComponent rendered="#{!empty bean.collectionValue}" /> 
<h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" /> 
<h:someComponent rendered="#{bean.stringValue == 'oneValue' || bean.stringValue == 'anotherValue'}" /> 

要了解更多關於JSF/Facelets的,我建議要經過Sun公司自己的JSF教程在Java EE 6 tutorial part II chapters 4-9Marty Hall's Coreservlets.com tutorials

+0

太棒了!感謝BalusC – TCM 2010-03-16 12:45:02

0

這裏是JSF模板一個很好的教程:

JSF 2 Tutorials - Templating

爲了定製什麼不同的用戶角色將看到的只是使用呈現屬性。