8
我一直在玩JSF,並有一個項目工作,有一個頁眉/頁腳/導航/內容 面板。然而,該項目從第1頁到第2頁等,每個頁面都有不同的佈局。我該如何創建一個可重複使用的模板,使頁面之間保持相同的外觀和風格,即頁眉/頁腳/導航保持不變,但內容更新?如何使用頁眉/頁腳/導航創建可重複使用的模板?
我一直在玩JSF,並有一個項目工作,有一個頁眉/頁腳/導航/內容 面板。然而,該項目從第1頁到第2頁等,每個頁面都有不同的佈局。我該如何創建一個可重複使用的模板,使頁面之間保持相同的外觀和風格,即頁眉/頁腳/導航保持不變,但內容更新?如何使用頁眉/頁腳/導航創建可重複使用的模板?
這聽起來像是一個主模板的經典案例。在這樣的模板中,您將所有頁面的所有內容都放在一起,然後您的實際頁面會引用此模板並「填入空白處」。在某種程度上,它也是經典包含的反面。
E.g.
/WEB-INF/templates/masterTemplate.xhtml:
<!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:head>
<title>
<ui:insert name="title">Some title</ui:insert>
</title>
</h:head>
<ui:include src="header.xhtml"/>
<h:body>
<ui:insert name="content" />
</h:body>
<ui:include src="footer.xhtml"/>
</html>
甲頁使用此如下,例如
/hello.xhtml
<ui:composition template="/WEB-INF/templates/masterTemplate.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<ui:define name="title">hello</ui:define>
<ui:define name="content">
Hi, this is the page
</ui:define>
</ui:composition>
簡短而親切.. !!! – kark 2013-09-16 07:49:14