惰性搜索在Primefaces 7.0中不起作用

时间:2019-07-31 12:38:39

标签: primefaces

地图过滤器在Primefaces 7.0 DataTable惰性搜索中将属性设置为null。

我已经从primefaces 5.0升级到7.0,相同的代码在5.0中可以正常工作。

我有一个JSF页面,其中我正在使用Primefaces DataTable,并在不起作用的数据表中实现了惰性搜索。

问题是,当我调试此代码时,在过滤器映射中将 null = 123456789 用作键/值。我不明白为什么我将null用作属性值,以及由于这个原因

java.lang.NullPointerException     在javax.faces.component.StateHolderSaver。(StateHolderSaver.java:96)

JSF页面中的代码段:

<p:dataTable id="d1" lazy="true" paginator="true"
    paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    rendered="#{!bean.login}" rows="10"
    rowsPerPageTemplate="5,10,15" styleClass=""
    value="#{bean.lazyDataModel}" var="row"
    widgetVar="gridFilter" reflow="true">
        <p:column disabledSelection="false" exportable="false"
          resizable="false" toggleable="false">
            <p:rowToggler />
        </p:column>
        <p:column disabledSelection="false" exportable="false"
           filterBy="#{row[0]}"
           headerText="#{bean.dataTableHeaderNames[0]}"
           resizable="false" toggleable="false">
            <f:facet name="filter">
                <p:inputText onchange="PF('gridFilter').filter()"
                placeholder="Search" styleClass="textingrid" />
            </f:facet>
            <h:outputLabel id="g1" value="#{row[0]}" />
        </p:column>

.........

这是惰性模型代码段的代码:

@Override
    public List  load(int first, int pageSize, String sortField,SortOrder sortOrder, Map<String,Object> filters)
    {

       result=dbObject.lazyLoadList(first, pageSize, sortField, filters);

        return result;      
    }
}

1 个答案:

答案 0 :(得分:0)

从6.0迁移到7.0时,我遇到了同样的问题,并且通过升级到PrimeFaces 7.0.15进行了修复,而未更改过滤器功能。

不幸的是,任何7.x版本都位于付费专区(PrimeElite)后面。