2012-05-02 80 views
0

我對使用JSF並不確定,但我不確定這是否正確,但在Rails中通常會有一個主應用程序文件當前頁面被加載。這樣我就不必擔心每次都會複製粘貼菜單等。JSF 2 - 從兩個文件構建一個頁面 - 主要和當前內容

如何通過JSF 2實現這一目標?我可以每次導航到同一主頁並告訴它加載當前內容嗎?還是告訴我導航到的當前頁面以加載「圍繞內容的主框架」?

謝謝!

+0

http://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/ – Daniel

+0

相關: http://stackoverflow.com/questions/4792862/how-to-include-another-xhtml-in-xhtml-using-jsf-2-0-facelets – BalusC

回答

3

是的,當然,JSF 2.0有page-templating feature。您可以定義一個模板來爲所有視圖頁面定義一個通用佈局。

Facelets標記來創建基本的網頁:

  • UI:插入 - 定義會通過加載模板的文件替換內容;
  • ui:define - 定義插入到標籤ui:insert中的內容;
  • ui:包括 - 包含來自其他頁面的內容;
  • ui:合成 - 如果與模板屬性一起使用,則加載指定的模板,並且此標記的子項定義模板佈局。在其他情況下,它是一組元素,可以插入某處。

例如:

<ui:composition 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    template="/templates/myLayout.xhtml"> 

    <ui:define name="menu"> 
     <ui:include src="/mypath/menu.xhtml"/> 
    </ui:define> 

    <ui:define name="content"> 
    <ui:include src="/mypath/content.xhtml"/>   
    </ui:define> 

</ui:composition> 

<ui:insert name="content"> 
    <ui:include src="/mypath/mycontent.xhtml"/> 
</ui:insert> 
1

JSF不支持您想要存檔的內容。相反,它支持視圖和基本佈局(模板)。你需要它這個:

<?xml version="1.0" encoding="UTF-8"?> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
template="path/to/template.xhtml> 

<your custom content here/> 
<ui:composition/> 
相關問題