我正在使用primefaces 3.4.2 jar。我在一列中有一个带有图像的数据表,我想导出给定的文本而不是导出图形图像的值“org.primefaces.component.graphicimage.GraphicImage@578a5496”in excel
<p:dataTable id="Data" var="data" value="#{bean.List}">
<p:column style="width:3%">
<f:facet name="header">
<h:outputText value="Value"></h:outputText>
</f:facet>
<h:graphicImage style="border:0;" name="image1.png" library ="images" rendered="#{data.image eq 'image1'}"/>
<h:graphicImage style="border:0;" name="image2.png" library ="images" rendered="#{data.image eq 'image2'"/>
</p:column>
</p:dataTable>
<h:commandLink id="excelDataExporterLink">
<h:graphicImage id="searchExce1" name="excel1.png" library="images"></h:graphicImage>
<p:dataExporter type="xls" target="Data" fileName="Data" pageOnly="true" />
</h:commandLink>
我想将文本image1/image2
导出到相应的“值”列。目前将导出文本org.primefaces.component.graphicimage.GraphicImage@578a5496
在excel或pdf。
答案 0 :(得分:0)
一种方法是扩展ExcelExporter
(我想类似的事情也可以用PDFExporter完成),如下所示:
请注意,该值将取自alt
属性
public class ExtendedExcelExporter extends ExcelExporter {
@Override
protected String exportValue(FacesContext context, UIComponent component) {
if (component instanceof HtmlGraphicImage) {
return (String) component.getAttributes().get("alt");
}
else {
return super.exportValue(context, component);
}
}
}
以上摘自Issue 4013: Support for CellEditor and Images in Exporter
另请注意,此功能已在 PrimeFaces ELITE 4.0.9和3.5.25中发布