地图过滤器在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;
}
}
答案 0 :(得分:0)
从6.0迁移到7.0时,我遇到了同样的问题,并且通过升级到PrimeFaces 7.0.15进行了修复,而未更改过滤器功能。
不幸的是,任何7.x版本都位于付费专区(PrimeElite)后面。