循环遍历lazyDataModel

时间:2016-01-25 15:45:23

标签: java primefaces

我在我的prime faces项目中使用lazyDataModel来查看通过素数数据表的延迟行为的一些数据,但是这样可以正常工作。我的问题是我不能在我的bean中循环或迭代这个lazyDataModel,它不会返回任何错误,但它的行为就像它是空列表,所以我如何循环我的lazyDataModel。以下是我的代码:

LazyDataModel<Supplier> supplierList = SupplierService.getAllSuppliers();
for (Supplier existingSupplier : supplierList) {
                if (existingSupplier.getName().equalsIgnoreCase(supplierName) && existingSupplier.getPhone().equalsIgnoreCase(phone)) {
                    supplierExist = true;
                    break;
                }
            }

1 个答案:

答案 0 :(得分:3)

您不能以这种方式循环LazyDataModel对象。

您可以使用在创建LazyDataModel对象时应该覆盖的load()方法获取它包含的对象列表。

创建时,你应该有这样的代码:

    supplierDataModel = new LazyDataModel<Teren>() {
        private static final long serialVersionUID = 1L;

        @Override
        @SuppressWarnings("unchecked")
        public List<Supplier> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
            return (List<Supplier>) getSupplierListMethod(whatever arguments);
    };

然后,要访问其中的对象,您可以使用适合您的参数调用前面提到的加载方法。