我試圖用延遲加載實現一個表。我認爲我從演示頁面和文檔中獲得了所有步驟,但我總是收到「找不到記錄」消息。我想我已經減少了代碼minimun表達,至少應該有一個記錄:Primefaces:實現LazyDataModel
表頁:
<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>
LazyDataModel:
@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零」。我正在使用primefaces-3.1-SNAPSHOT,jsf 2.0.3和tomcat 6.0。請幫忙。我錯過了什麼?
爲什麼你使用這麼舊的快照PF版本?嘗試最新的穩定版本。 http://primefaces.org/downloads.html – 2013-01-14 21:55:50