Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel,但我已经定义了rowKey_Jsf_Primefaces_Selectable_Row Key - Fatal编程技术网

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

Jsf 启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel,但我已经定义了rowKey,jsf,primefaces,selectable,row-key,Jsf,Primefaces,Selectable,Row Key,我有一个可选的PrimeFaces 3.4.1数据表: <p:dataTable value="#{projectAdminisrationMB.selectedUserMemberOfGroups}" var="group1" rowKey="#{group1.name}" selectionMode="single" selection="#{projectAdminisrationMB.selectedBelongToGroup}"> ... </p:d

我有一个可选的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
。这是如何导致的,我如何解决它?

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


确保
实例的
名称
属性为从不
。否则,最好使用表示自动生成的DB主键的属性,例如
{group1.id}
,如果您有一个属性的话。

仅供参考-我在使用Primefaces列筛选器时遇到了相同的错误。如果我使用过滤器并单击刷新按钮来重新加载表,那么我就会遇到错误。如果我不使用列过滤器,那么在刷新表时就不会发生错误。我有两个列过滤器,它们通过提取名字或姓氏对包含全名的同一字段执行过滤逻辑,因此我怀疑这个问题与这些过滤器有关。我还没有弄明白这个问题,但我想与你分享一下,以防它有所帮助。我正在使用rowKey。

组名从不为空,但我尝试了id,错误依然存在。我的managedBean应该实现SelectableDataModel吗?不,不是您的managedBean。数据模型,正如异常消息所说。
后面的属性。回到具体问题上来:抱歉,例外情况不会撒谎。如果以这种方式使用
rowKey
,则导致此异常的唯一原因是至少有一个项具有
null
组名。也许数据加载逻辑被破坏了?试着用一个具体的SSCCE例子来说明这个问题。这听起来像是对这个问题的一个潜在有用的评论,但可能不是一个明确的“答案”。