当前位置: 首页 > 知识库问答 >
问题:

p:DataExporter无法识别p:Celleditor

慕晨
2023-03-14

我有一个可编辑的 ,我想使用 将该表的内容导出为PDF格式。

我已经包含了itext 2.1.7 JAR。我得到了PDF格式的输出,但它显示了所有 组件的对象#ToString()值,如下所示:

org.primefaces.component.celleditor.CellEditor@1bd59e1

如何导出 的输出值?

共有1个答案

景凌
2023-03-14

PrimeFaces标准数据导出程序确实无法识别 。我之前在第4013期向PF人员报告了这一点,其中有一个示例,不仅提到了celleditor,而且还提到了HTMLGraphicImage(我们使用图像来显示布尔状态,我们希望在PDF/XML/XLS/CSV报告中显示其Alt)。

首先,创建一个扩展标准pdfexporter的新类,如下所示:

public class ExtendedPDFExporter extends PDFExporter {

    @Override
    protected String exportValue(FacesContext context, UIComponent component) {
        if (component instanceof CellEditor) {
            return exportValue(context, ((CellEditor) component).getFacet("output"));
        }
        else if (component instanceof HtmlGraphicImage) {
            return (String) component.getAttributes().get("alt");
        }
        else {
            return super.exportValue(context, component);
        }
    }

}

然后,要使用它,以编程方式调用它,而不是通过

<p:dataTable binding="#{table}" editable="true" ...>
    <p:column><p:cellEditor>...</p:cellEditor></p:column>
    <p:column><p:cellEditor>...</p:cellEditor></p:column>
    <p:column><p:cellEditor>...</p:cellEditor></p:column>
    <p:column exportable="false"><p:rowEditor /></p:column>
</p:dataTable>
<h:commandLink value="PDF" action="#{bean.exportPDF(table, 'filename')}" />
public void exportPDF(DataTable table, String filename) throws IOException {
    FacesContext context = FacesContext.getCurrentInstance();
    Exporter exporter = new ExtendedPDFExporter();
    exporter.export(context, table, filename, false, false, "UTF-8", null, null);
    context.responseComplete();
}
 类似资料:
  • 我有以下序列

  • 我不确定这是否是一个与我没有这台计算机的管理权限有关的问题。任何帮助,以便我可以进一步排除故障,将非常感谢! 谢谢

  • 问题内容: 我使用,当我得到 我删除了构建路径,然后又做了 ,仍然是同样的错误。 问题答案: 该代码不是Java SE的一部分,因此这些类将不在JRE中。您需要找到并下载包含这些类的JAR文件,然后将其添加到Eclipse构建路径中。 (可以在此处下载JAR的一个地方,但是如果此链接中断,可以轻松进行自己的搜索。请转到Maven Central或findjar。)

  • 问题内容: 我有一个jimfs(内存文件系统中的Google)从字节数组中创建的zip文件。当尝试使用打开该文件时,出现错误,提示无法识别该提供程序。我的代码如下: URI类似于:。 堆栈跟踪为: jimfs未与一起列出。它位于分别与 for 相比的单独的类加载器中。 提供者的打印如下: 我尝试基于jimfs ClassLoaderTest示例手动设置类加载器,但没有成功。我在Linux上运行。

  • 问题内容: 有时,我会在页面上寻找可能存在或不存在的元素。我想用/尝试/捕获这种情况,当某些HTML元素不存在时,selenium会抛出该异常。原始例外: 具有讽刺意味的是,它不会让我捕捉到之前抛出的异常吗?代码在这里: 错误在这里: 谷歌搜索/文档整理一无所获…让我感到奇怪的是,selenium可以引发异常但不能捕获它。 问题答案: 您需要先导入异常 然后你可以参考它

  • 问题内容: 我的Java代码有问题。我正在尝试加密文件。但是,当我运行Java代码时,我得到“ java.security.InvalidKeyException:无效的AES密钥长度:162个字节”。 这是代码: 该错误发生在“ KeyPairGenerator keyGen = KeyPairGenerator.getInstance(“ AES”);“行。 问题答案: AES是一种对称算法,