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"/>