gpt4 book ai didi

jsf-2 - 在 p :dataTable 中实现 LazyDataModel

转载 作者:行者123 更新时间:2023-12-04 15:36:17 26 4
gpt4 key购买 nike

我正在尝试实现一个延迟加载的表。我想我从演示页面和文档中获得了所有步骤,但我总是收到“未找到记录”消息。我想我已经将代码简化为最小表达,至少应该有一个记录:

表格页面:

<h:form id="listaEmpresas">
<p:dataTable id="tablaEmpresas" value="#{empresasTableMB.lazyDataModel}" var="empresa">
<p:column>
<f:facet name="header">
<h:outputText value="#{msgs.empresa_tabla_nombre}"/>
</f:facet>
<h:outputText value="#{empresa.nombre} "/>
</p:column>

</p:dataTable>
</h:form>

惰性数据模型:
@Override
public List<Empresa> load(int first, int pageSize, String sortField, SortOrder so, Map<String, String> filters) {
List<Empresa> listaEmpresas = new ArrayList();
Empresa e = new Empresa();
e.setNombre("Company");
listaEmpresas.add(e);
this.setRowCount(1);
return listaEmpresas;
}


@Override
public void setRowIndex(int rowIndex) {
if (rowIndex == -1 || getPageSize() == 0) {
super.setRowIndex(-1);
}
else
super.setRowIndex(rowIndex % getPageSize());
}

我必须重写 setRowIndex,否则我会得到一个异常“java.lang.ArithmeticException:/by zero”。我正在使用 primefaces-3.1-SNAPSHOT、jsf 2.0.3 和 tomcat 6.0。请帮忙。我错过了什么?

最佳答案

您需要添加字段 private int rowCount;然后在你的load(...)方法将列表中记录数的值设置为此字段 (rowCount)。
没有这个东西<p:dataTable ...>将获得“未找到记录”并且如果您不指定 rows ="10" (例如)属性它不会呈现行!

关于jsf-2 - 在 p :dataTable 中实现 LazyDataModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com