当前位置: 首页 > 知识库问答 >
问题:

DataTable-延迟加载Primefaces显示错误

南宫阳焱
2023-03-14

我正在使用JSF2。0和PrimeFaces3。1和3。1用于业务逻辑。我试图使用DataTable—延迟加载。但它给了我以下的错误。请帮忙。

发生错误:

/ 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个答案

范弘亮
2023-03-14

这个答案派生于Albnille的答案,但是如果您碰巧在您的LazyDataTable后代中设置了一个名为pagesize的字段,它可能会导致同样的问题。这就是我的情况,直到我看到setRowIndex的重写,我才发现问题。

禄豪
2023-03-14

这似乎是一个众所周知的问题

Datable:java.lang.算术异常:/by零

第1544期:懒散数据表。setRowIndex引发算术异常:除以0。

它有一个FIX/WORKAROUN(所以由一些用户声称)

晋西岭
2023-03-14

必须重写方法setRowIndex

示例:

@Override
public void setRowIndex( int rowIndex ) {

   if ( rowIndex == -1 || getPageSize() == 0 ) {
    super.setRowIndex( -1 );
   } else
    super.setRowIndex( rowIndex % getPageSize() );
}
 类似资料:
  • 我想导出一个在报表生成期间具有LazyLoad数据模型的数据表(带分页)。 问题:当我导出时,报告从数据库逐页生成,然后导出到Excel/PDF,这会消耗更多时间。我想通过跳过逐页生成数据集来在单个数据库访问中获取它。 我生成了如下代码片段: JSF: 受管Bean: 数据模型: 注: < li >没有语法错误。 < li >所有自定义类型类都已定义。 如何通过跳过逐页生成记录来获得Excel报表

  • 参考这里的帖子中给出的建议,我尝试使用实时滚动实现惰性加载来处理大型数据集,但实时滚动不会发生,当可数据的行和scrollRow属性都used.If我删除行属性,然后没有记录displayed.Here是我的代码片段,我tried.Can如果我做错了什么,请有人帮我。 JSF 代码片段 受管bean 刀类 } 懒惰数据模型类

  • 我想,我的java代码是正确的,但记录并没有显示在dataTable上。 请检查下面的代码。我不知道我在哪里犯了错误。 .xhtml JAVA getResultList getResultList方法返回一个正确的值,我调试它。我认为问题在于userDataList。

  • 所以,我有一个这样的日期: 在接收如下参数的页面上: 加载页面时,没有任何问题,一切正常。但当我单击下一页或尝试编辑行时,viewparam中的“必需消息”就会出现。看起来,当数据表上的任何内容发生更改时,param就会消失。 有什么想法吗?非常感谢。

  • 问题是,每次尝试筛选表时,我的 实现中被重写的方法 都会被调用两次。 我的<代码>LazyDataModel<代码>实现: 我的xhtml视图: 和控制器

  • 问题内容: 在我的JSF数据表中,我实现了延迟加载,当我对记录进行分页时,执行下一组记录大约需要4到5秒的时间,实际上执行结果应该少于一秒钟。 这是我实现它的方式所发生的,不确定我该如何解决。 扩展LazyDataModel的DataModel类 和道课 有人可以解释是什么原因导致了记录分页时出现延迟吗? 如果我删除以下内容 并执行,那么它可以完美执行而没有延迟,但是问题始终是5,这是我每页的默认