我试图在启用RowSelection的情况下实现一个DataTable Editable。
但它抛出了一个例外:
启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel。
我在对象类和托管bean类中实现了数据模型,但错误是相同的。现在只为我显示一个空白表。请帮忙。
这个问题有两种解决方案:
第一个是简单的。将rowKey="#{myEntity.carID}"
添加到您的p:dataTable
应该可以解决您的问题
如果您尝试将新项添加到基础列表并忘记为新项的rowKey分配值(rowKey为null),则可能会出现此错误。
除了rags给出的解决方案之外,我想提一下,如果行键为“NULL”或者整个List为“NULL”,即使您已完成上述所有步骤,也可能会出现相同的错误。如果要显示0行,则返回包含0个项目的列表。不要返回null
列表。
该错误消息表明您的DataModel未实现SelectableDataModel
接口。它需要是一个单独的类。这是PF展示如何完成数据表定义的示例:
import org.primefaces.model.SelectableDataModel;
public class CarDataModel extends ListDataModel<Car> implements SelectableDataModel<Car> {
...
}
不要忘记在EL语法中包围rowKey值。
rowKey="row.id"
会失败但是
rowKey="#{row.id}"
将会成功。