primefaces - 惰性搜索在 Primefaces 7.0 中不起作用
问题描述
地图过滤器在 Primefaces 7.0 DataTable Lazy 搜索中将该属性设为空。
我已经从 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;
}
}
解决方案
我在从 6.0 迁移到 7.0 时遇到了同样的问题,通过升级到 PrimeFaces 7.0.15 解决了这个问题,而没有更改过滤器功能中的任何内容。
不幸的是,任何 7.x 版本都落后于付费专区 (PrimeElite)。
推荐阅读
- python - 在单元测试中,如何在单元测试中传递模拟对象以便它可以在'with'上下文中使用?
- browser - Mac 版 Edge 的渲染方式是否与 Windows 版 Edge 相同?
- swift - 组合 - 将类发布的属性分配给数据模型结构中的属性
- dataweave - 外部化 DWL 以设置变量和对象存储默认值 Mulesoft
- javascript - 通过单击链接显示信息
- javascript - 正确使用带有条件接口返回类型的 TypeScript 重载
- kotlin - 如何在 Kotlin 中使用 Junit 5 的 TempDir?
- azure - 有没有办法使用 az cli 从 workspaceid 获取日志分析工作区名称?
- excel - 使用“For each In Range(SomeRange)”填充空白单元格时如何避免错误?
- python - 如何使用 docplex.cp(约束编程)对可中断任务的调度问题进行建模?