【问题标题】:dataexporter primefaces not workingdataexporter primefaces 不工作
【发布时间】:2014-07-08 07:23:31
【问题描述】:

我正在使用 PrimeFaces 5 并使用 dataexporter 导出 .xls 和 pdf 文件。当我点击导出时,似乎什么都没有发生。以下是我的代码:

<h:body>
    <h:form id="formReport">
        <ui:include src="menu.xhtml"></ui:include>
             <p:dataTable id="ngoReporttbl" var="obj" styleClass="datatable"
                    value="#{ngoReportController.ngoReportList}" >

                    <f:facet name="header">
                      List of Cars
                        <p:commandButton id="toggler" type="button" value="columns" style="float:right" icon="ui-icon-calculator"></p:commandButton>
                        <p:columnToggler datasource="ngoReporttbl" trigger="toggler"></p:columnToggler>
                    </f:facet>

                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="NGO Id"></h:outputText>
                        </f:facet>
                        <h:outputText value="#{obj.ngoId}"></h:outputText>
                    </p:column>
                        <p:column>
                        <f:facet name="header">
                            <h:outputText value="NGO Name Org"></h:outputText>
                        </f:facet>
                        <h:outputText value="#{obj.ngoNameOrg}"></h:outputText>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Environment"></h:outputText>
                        </f:facet>
                        <h:outputText value="#{obj.environment}"></h:outputText>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Livelihood"></h:outputText>
                        </f:facet>
                        <h:outputText value="#{obj.livelihood}"></h:outputText>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Country"></h:outputText>
                        </f:facet>
                        <h:outputText value="#{obj.country}"></h:outputText>
                    </p:column>
                </p:dataTable>  

                <h:commandLink style="float:right">
                    <p:graphicImage  value="../images/pdf.png" width="45"></p:graphicImage>
                   <p:dataExporter type="pdf" target="ngoReporttbl" fileName="ngoReport" pageOnly="true"></p:dataExporter>
                 </h:commandLink>
                 <h:commandLink style="float:right">
                    <p:graphicImage  value="../images/csv.png" width="45"></p:graphicImage>
                   <p:dataExporter type="xls" target="ngoReporttbl" fileName="ngoReport" pageOnly="true"></p:dataExporter>
                 </h:commandLink>

        <ui:include src="footer.xhtml"></ui:include>
    </h:form>
</h:body>

dataTable 和 Export 命令都在一个表单中。它类似于 primefaces.org 网站上给出的示例。但是,我无法将数据导出为 pdf、cvs。

【问题讨论】:

  • 你安装了itext库吗?
  • 不。为什么在 primefaces 的情况下需要这样做?
  • Primefaces 只是 JSF 的一个组件库。它本身不具备创建 PDF 文件的能力。来自 PF 文档:“DataExporter 嵌套在 UICommand 组件中,例如 commandButton 或 commandLink。对于 pdf 导出 itext 和对于 xls,需要在类路径中导出 poi 库。”

标签: jsf primefaces primefaces-dataexporter


【解决方案1】:

对于 XLS,您不需要任何额外的东西。对于 PDF,您需要 POI。由于许可问题,Primefaces 仅适用于 2.1.7。并且您的 commandButton / commandLink 需要为 ajax="false"。祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多