启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel

use*_*029 23 jsf primefaces

我试图在启用RowSelection的情况下实现一个DataTable Editable.

但它抛出了一个例外:

启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel.

我在对象类和托管bean类中实现了DataModel,但错误是相同的.现在只为我显示一个空白表.请帮忙.

rag*_*ags 39

这个问题有两种解决方案:

  1. 将rowKey,selection和selectionMode属性添加到dataTable
  2. 实现SelectableDataModel接口并扩展类似ListDataModel的DataModel以填充dataTable

第一个是简单的.添加rowKey="#{myEntity.carID}"到您的p:dataTable应该解决您的问题

  • 您是否尝试将 rowKey 提供给 dataTable ?这个比较简单。 (2认同)

Nub*_*per 21

如果您尝试将新项添加到基础列表并忘记为新项的rowKey分配值,则可能会出现此错误.或者换句话说,例如,如果myEntity.carID为null.


Mat*_*ndy 2

该错误消息表明您的 DataModel 未实现这些SelectableDataModel接口。它需要是一个单独的类。这是 PF 中的示例,展示了如何完成数据表定义:

import org.primefaces.model.SelectableDataModel;  

public class CarDataModel extends ListDataModel<Car> implements SelectableDataModel<Car> {    
   ...
}
Run Code Online (Sandbox Code Playgroud)