2012-04-01 62 views
8

我一直在玩JSF,並有一個項目工作,有一個頁眉/頁腳/導航/內容 面板。然而,該項目從第1頁到第2頁等,每個頁面都有不同的佈局。我該如何創建一個可重複使用的模板,使頁面之間保持相同的外觀和風格,即頁眉/頁腳/導航保持不變,但內容更新?如何使用頁眉/頁腳/導航創建可重複使用的模板?

回答

22

這聽起來像是一個主模板的經典案例。在這樣的模板中,您將所有頁面的所有內容都放在一起,然後您的實際頁面會引用此模板並「填入空白處」。在某種程度上,它也是經典包含的反面。

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> 
+2

簡短而親切.. !!! – kark 2013-09-16 07:49:14

相關問題