簡體   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