Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf Primefaces在惰性模型中获取所有数据_Jsf_Primefaces_Lazy Loading_Data Export - Fatal编程技术网

Jsf Primefaces在惰性模型中获取所有数据

Jsf Primefaces在惰性模型中获取所有数据,jsf,primefaces,lazy-loading,data-export,Jsf,Primefaces,Lazy Loading,Data Export,我正在Primefaces中为datatable使用惰性模型。对于导出,我希望获得所有数据,我指的是用于计算行数的数据 我可以使用以下方法获取当前在datatable页面上显示的所有数据: List<Info> data = (List<Info>) lazyModel.getWrappedData(); List data=(List)lazyModel.getWrappedData(); 但更多的页面上可能会有更多的数据。有没有类似于刚才提到的从datatable

我正在Primefaces中为datatable使用惰性模型。对于导出,我希望获得所有数据,我指的是用于计算行数的数据

我可以使用以下方法获取当前在datatable页面上显示的所有数据:

List<Info> data = (List<Info>) lazyModel.getWrappedData();
List data=(List)lazyModel.getWrappedData();
但更多的页面上可能会有更多的数据。有没有类似于刚才提到的从datatable获取所有数据的方法

我已尝试使用此选项,但它始终会返回null:

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
            .findComponent(":form:infoTable");
List<Info> data = dataTable.getFilteredValue();
DataTable DataTable=(DataTable)FacesContext.getCurrentInstance().getViewRoot()
.findComponent(“:form:infoTable”);
List data=dataTable.getFilteredValue();
我尝试过的另一种方法是进行几乎与我正在进行的行计数相同的查询,不同之处在于我得到的是对象列表,而不是行数,但为此我还需要一个过滤器。如果这是一个解决方案,那么如何获得用于延迟加载的过滤器


通常,我如何解决这个问题?

解决方案是获得一个过滤器。 我从惰性模型中获取了自定义过滤器,并使用它从重写的load方法中进行查询,所以唯一的区别是我没有首先使用参数和页面大小

在解决方案中没有什么真正的新内容,我只需要获得过滤器:

Map<String, Object> filters = ((MyLazyDataModel) lazyModel).getFilters().getFilters();
Map filters=((MyLazyDataModel)lazyModel.getFilters().getFilters();