आपको Facelets भी देखना चाहिए; डेवलपर वर्क्स पर good introductory article है।
फेसलेट <ui:insert/>
टैग मास्टर पेजों में उपयोग किए गए ASP.NET <asp:ContentPlaceHolder/>
टैग से तुलनीय है; यह आपको पृष्ठ के उस क्षेत्र के लिए डिफ़ॉल्ट सामग्री प्रदान करने देता है, लेकिन इसे ओवरराइड किया जा सकता है।
किसी अन्य पृष्ठ में फेसलेट टेम्पलेट भरने के लिए, आप <ui:composition/>
तत्व से प्रारंभ करते हैं जो टेम्पलेट फ़ाइल को इंगित करता है। यह लगभग ASP.NET पृष्ठ में MasterPageFile विशेषता को घोषित करने के बराबर है।
<ui:composition/>
तत्व के अंदर, आप तत्वों का उपयोग टेम्पलेट डिफ़ॉल्ट को ओवरराइड करने के लिए करते हैं, <asp:Content/>
टैग के उपयोग के समान ही। इन तत्वों में किसी भी प्रकार की सामग्री हो सकती है - सरल स्ट्रिंग से जेएसएफ तत्वों तक।
इसलिए, यह सब एक साथ लाने के लिए ...
master.xhtml में:
<!-- HTML header content here -->
<ui:insert name="AreaOne">Default content for AreaOne</ui:insert>
<ui:insert name="AreaTwo">Default content for AreaTwo</ui:insert>
<!-- HTML footer content here -->
में पेज।एक्सएचटीएमएल:
<!-- HTML header content here -->
Here is some new content
<p>Some new content here too</p>
<!-- HTML footer content here -->
आप भी इस तरह के अलग अलग डेटा के साथ पृष्ठ के घटकों का पुन: उपयोग करने की क्षमता के रूप में Facelets, के साथ कुछ अन्य लाभ मिलेंगे:
<ui:composition template="/WEB-INF/templates/master.xhtml">
<ui:define name="AreaOne">Here is some new content</ui:define>
<ui:define name="AreaTwo">
<p>Some new content here too</p>
</ui:define>
</ui:composition>
और यह के रूप में प्रस्तुत करना होगा।
(और जानकारी प्रदान करने के लिए संपादित।)