2012-04-17 18 views
5

Sto utilizzando JSF2.0 con PrimeFaces3.1 e Spring3.1 per la logica Business. Stavo cercando di utilizzare un caricamento DataTable-Lazy. Ma mi sta dando il seguente errore. Gentilmente aiuto.DataTable - Lazy Loading Primefaces che mostra l'errore

è verificato un errore:

/ 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

Mostraci il tuo bean e markup! L'eccezione è fuorviante. Nella maggior parte dei casi è causato dal non fornire una collezione per l'attributo 'value' del datatable. – djmj

risposta

10

È necessario eseguire l'override del metodo setRowIndex

Esempio:

@Override 
public void setRowIndex(int rowIndex) { 

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

Questa risposta è derivato per Alfaville 's risposta, ma se vi capita di aver impostato un campo denominato pageSize nel vostro LazyDataTable discendente essa può causare lo stesso problema. Questo è stato il caso con me e non ho visto il problema fino a quando non ho visto l'Override di setRowIndex.