Primefaces 过度使用dataExporter方法或在jsf中实现延迟导出
我在项目中使用Primefaces 过度使用dataExporter方法或在jsf中实现延迟导出,primefaces,Primefaces,我在项目中使用。我需要一些功能 <p:panelGrid columns="1" styleClass="currentReportTablesStyle" style="text-align: center"> <p:commandButton value="Load Data" id="dataLoaderButton"
。我需要一些功能
<p:panelGrid columns="1" styleClass="currentReportTablesStyle" style="text-align: center">
<p:commandButton value="Load Data"
id="dataLoaderButton"
ajax="false"
action="#{QCforCCReportBean.LoadReport()}"/>
<h:outputText value="Export to format:"/>
<h:commandLink disabled="#{QCforCCReportBean.isNotAdministrator}">
<p:graphicImage name="/images/xls_file.png" width="24"/>
<p:dataExporter type="xls" target="reportTable" fileName="ExportResult"/>
</h:commandLink>
</p:panelGrid>
当我单击命令按钮-“加载数据”以导出数据时,触发了来自“{QCforCCReportBean.LoadReport()}”
的方法。此方法的参数中有两个变量:first和pageSize。我将这个变量设置为0和50。它很酷。我有懒惰和良好的分页。例如0-50、50-100、100-150等。
但当我尝试导出数据时,触发了一些方法“#{QCforCCReportBean.LoadReport()}”
,但变量是0-87587(或另一个大数字。表中的所有行),我的java崩溃了java.lang.OutOfMemoryError:超出了GC开销限制
我想要导出数据的覆盖方法或修改数据导出器按零件保存数据,放大镜显示属性列表。其中之一是:
pageOnly 0 String Exports only current page instead of whole dataset
在第133页甚至有一个例子:
页码
默认情况下,dataExporter可以处理整个数据集,如果您愿意的话
与仅导出当前页面上显示的数据类似,请将pageOnly设置为
对
我不想导出可见页面,我想导出所有数据,但通过小图片,因为如果我导出所有数据,我得到的内存错误。所以你想下载100 xlsx文件?然后?手动合并它们?或者,对db和服务器端的100个查询是否会将它们以块的形式添加到xlsx中?好吧,如果你想要后者,那就这么做吧。查看exporter源代码并根据您的需要进行调整。如果您有详细的问题,请联系我们。现在的问题是“家庭作业”,他想下载一个包含所有数据的文件,我已经理解了。但只要op没有调查导致OoM问题的部分(他的支持bean/模型或xlsx),我就无法创建新答案或改进现有答案。
<p:dataExporter type="pdf" target="tableId" fileName="cars" pageOnly="true"/>