Jsf Primefaces、数据导出器和水印

Jsf Primefaces、数据导出器和水印,jsf,primefaces,client-side,Jsf,Primefaces,Client Side,我有一个带有过滤列的dataTable,并使用水印设置输入值并在标题中节省一些空间,但当尝试使用dataExport时,pdf文件会使用来自水印的某种引用呈现,如: 列标题 org.primefaces.component.watermark。Watermark@46339a4c 所需的列内容(…) 我的xhtml的结构基本上是: <h:form id="formID"> <p:commandButton value="Export"ajax="false"

我有一个带有过滤列的dataTable,并使用水印设置输入值并在标题中节省一些空间,但当尝试使用dataExport时,pdf文件会使用来自水印的某种引用呈现,如:

列标题


org.primefaces.component.watermark。Watermark@46339a4c
所需的列内容(…)

我的xhtml的结构基本上是:

    <h:form id="formID">

    <p:commandButton value="Export"ajax="false">
        <p:dataExporter type="pdf" fileName="file" preProcessor="#{my.stuff}" target="tableID" />
    </p:commandButton>

    <p:dataTable id="tableID" value="#{my.content}" var="myTable">
        <p:column id="columnID1" filterBy="#{myTable.Item}">
            <p:watermark value="Item" forElement="formID:tableID:columnID1" />
            <p:outputText value=#{myTable.Item}" />
        </p:column>
    </p:dataTable>

</h:form>


在生成报告时,它包括列中的所有内容。您需要使用
excludeColumns
属性来排除带有水印的列,或者需要使用iText库在预处理事件中删除此有问题的文本。
dataExporter
在导出某些组件时使用
toString()
方法,其中确实存在
watermark
。只需使用自定义
exportValue
方法。