如何在 af:facet 上显示另一个 f:facet 的内容

Nak*_*aki 1 jsf facet primefaces

使用 Primefaces 创建数据表时,我想在页眉和页脚方面创建一个按钮,但不重复代码。

考虑在<p:dataTable/>元素上具有以下标头方面:

<f:facet name="header">
    <p:commandButton value="Preview" icon="pi pi-search" update="@form:dPreview"
                     oncomplete="PF('wvdPreview').show()"
    />
</f:facet>
Run Code Online (Sandbox Code Playgroud)

如何在另一个方面(比如说name="footer")添加相同的代码而不重复代码?

我在互联网上搜索了一些选项,但只找到了复制标头代码或创建全新组件的选项,并且我不希望应用任何这些方法,除非没有其他方法。

小智 8

实际上,您可以将按钮放在一个构面中,该构面将由数据表的 paginatorTemplate 调用,并将 paginatorPosition 设置为两者(默认)。像下面的代码

<p:dataTable 
     paginatorAlwaysVisible="true"
     paginatorTemplate="{yourCustomTempl}"
     paginatorPosition="both">
        <f:facet name="{yourCustomTempl}">
            <p:commandButton icon="pi pi-download"/>
        </f:facet>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)