2012-04-17 75 views
5

我正在使用JSF2.0 PrimeFaces3.1和Spring3.1业务逻辑。我试图使用DataTableLazy加载。但它给了我以下错误。请帮助。DataTable - 延迟加载Primefaces显示错误

中出现错误:

/ 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

向我们展示您的bean和标记!例外是误导。在大多数情况下,这是由于没有为数据表的'value'属性提供集合。 – djmj 2013-05-01 18:26:22

回答

10

您必须覆盖的方法setRowIndex

例子:

@Override 
public void setRowIndex(int rowIndex) { 

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

这个答案是导数Alfaville的答案,但如果您碰巧LazyDataTable后裔它可能已经设置了一个名为pageSize场导致同样的问题。我的情况就是如此,直到我看到setRowIndex的替代值时,我才看到问题。