DataTable - 延迟加载Primefaces显示错误

时间:2012-04-17 05:24:37

标签: spring jsf datatable primefaces lazy-loading

我正在使用带有PrimeFaces3.1的JSF2.0和用于业务逻辑的Spring3.1。我正在尝试使用DataTable-Lazy加载。但它给了我以下错误。请帮助。

发生错误:

/ 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.

3 个答案:

答案 0 :(得分:10)

您必须覆盖方法 setRowIndex

示例:

@Override
public void setRowIndex( int rowIndex ) {

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

答案 1 :(得分:6)

答案 2 :(得分:0)

这个答案是Alfaville的回答的衍生产品,但如果您恰好在pageSize后代设置了一个名为LazyDataTable的字段,则可能会导致同样的问题。这就是我的情况,直到我看到覆盖setRowIndex之后我才发现问题。