jsf datatable - <f:facet>做什麼以及何時應該使用它?





primefaces xhtml (2)


facet表示容器組件中的命名部分。 例如,您可以為dataTable組件創建頁眉和頁腳構面。 http://www.jsftoolbox.com/documentation/help/12-TagReference/core/f_facet.html

當你想要創建使用來自用戶的某些代碼的組件時(例如包裝器),這很有用。

即。 當你想創建隱藏長文本的組件並顯示它的簡短版本時。 你可以只使用元素體,但是你只能得到一個值,如果你想從用戶那裡獲得短版本和長版本,那麼就不能在一個值中做到這一點(不使用某些判別式),只需使用facet和說哪一個是長的,哪個是短版本。

<textShortener>
    <f:facet name="short">
        This text is short.
    </f:facet>
    <f:facet name="long">
        This text is too <b>long</b to be showed when page loads. User have to click the button after the short text to show this.
    </f:facet>
</textShortener>

是的,這可以(而且應該)使用jsf模板完成,但我希望你能得到它。

要問:你在野外xml中定義了facet,沒有人請求它,所以沒有人處理它 - 這就是為什麼它沒有拋出錯誤也沒有顯示任何東西。

我一直遇到標籤<f:facet> 。 我正在使用它的其他代碼示例,但我不確定它的用途是什麼。

我已經編寫了一些代碼,這些代碼在方法上與我見過的其他代碼完全相同,除非它包含在<f:facet name=actions>標記中。 當我在我的代碼周圍添加它時,我正在包裝它的下拉框在我部署時消失。 任何人都可以提出這方面的原因或讓我了解如何以及何時使用方面?

這是我的代碼,我不打算添加bean代碼,因為它們只是基本的getter和setter而且我不認為它們會造成麻煩。

<f:facet name="actions">
    <p:selectOneMenu id="SwitchWeekDrpDwnMenu" 
                     value="#{depotWorkloadBean.selectView}"
                     partialSubmit="true">
        <p:ajax update="mainForm" 
                listener="#{depotWorkloadBean.updateView}" />
        <f:selectItem itemLabel="Day view" itemValue="Day"/>
        <f:selectItem itemLabel="01/01/2014" itemValue="Week"/>
    </p:selectOneMenu>
</f:facet>

如果我刪除了facet標籤,則顯示下拉框,但不能正常運行bean。




包含頁面:

<!-- opening and closing tags of included page -->
<ui:composition ...>
</ui:composition>

包括頁面:

<!--the inclusion line in the including page with the content-->
<ui:include src="yourFile.xhtml"/>
  • 你用ui:composition開始你的包含的xhtml文件ui:composition如上所示。
  • 您也可以在上面顯示的包含xhtml文件中使用ui:include該文件。




jsf primefaces xhtml facet