Jsf Primefaces、数据导出器和水印
我有一个带有过滤列的dataTable,并使用水印设置输入值并在标题中节省一些空间,但当尝试使用dataExport时,pdf文件会使用来自水印的某种引用呈现,如: 列标题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"
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
方法。