2012-04-17 7 views
5

Ich verwende JSF2.0 mit PrimeFaces3.1 und Spring3.1 für Business-Logik. Ich habe versucht, ein DataTable-Lazy-Laden zu verwenden. Aber es gibt mir den folgenden Fehler. Freundlich helfen.DataTable - Lazy Loading Grundflächen mit Fehler

ein Fehler aufgetreten:

/ by zero 
- Stack Trace 
java.lang.ArithmeticException:/by zero 
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62) 
at javax.faces.component.UIData.setRowIndex(UIData.java:448) 
at javax.faces.component.UIData.visitColumnsAndRows(UIData.java:1544) 
at javax.faces.component.UIData.visitTree(UIData.java:1212) 

Please help. 
+0

Zeigen Sie uns Ihre Bean und Markup! Die Ausnahme ist irreführend. In den meisten Fällen wird dies dadurch verursacht, dass keine Sammlung für das Attribut "value" der Datentabelle bereitgestellt wird. – djmj

Antwort

10

Sie müssen die Methode setRowIndex

Beispiel außer Kraft setzen:

@Override 
public void setRowIndex(int rowIndex) { 

    if (rowIndex == -1 || getPageSize() == 0) { 
    super.setRowIndex(-1); 
    } else 
    super.setRowIndex(rowIndex % getPageSize()); 
} 
0

Diese Antwort auf Alfaville ‚s Antwort-Derivat ist, aber wenn Sie ein Feld kann es pageSize in Ihrem LazyDataTable Nachkomme namens Set passieren verursacht das gleiche Problem. Dies war der Fall bei mir und ich sah das Problem erst, als ich das Override von setRowIndex sah.