繁体   English   中英

启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel,但我已经定义了rowKey

[英]DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled, but I have already defined rowKey

我有一个可选的PrimeFaces 3.4.1数据表:

<p:dataTable value="#{projectAdminisrationMB.selectedUserMemberOfGroups}" var="group1" 
    rowKey="#{group1.name}" selectionMode="single" selection="#{projectAdminisrationMB.selectedBelongToGroup}">
    ...
</p:dataTable>

我收到这个错误:

com.sun.faces.context.PartialViewContextImpl $ PhaseAwareVisitCallback访问Grave:javax.faces.FacesException:当启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel。

但是我已经根据rowKey设置了rowKey :当启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel 这是怎么造成的,我该如何解决?

rowKey属性中的EL表达式计算null时,可能会发生这种情况。

确保Group实例的name属性永远不为 null 否则,最好使用表示自动生成的DB主键的属性,例如#{group1.id} - 如果有的话。

仅供参考 - 使用Primefaces列过滤器时遇到了同样的错误。 如果我使用过滤器并单击刷新按钮来重新加载表,那么我会遇到错误。 如果我不使用列过滤器,那么当我刷新表时,错误永远不会发生。 我有几个列过滤器,通过提取名字或姓氏,在包含全名的同一字段上执行过滤器逻辑,所以我怀疑这个问题与这些过滤器有关。 我还没有弄清楚这个问题,但我想与你分享这个问题,以防万一。 我正在使用rowKey。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM