RowSelectionを有効にして編集可能なDataTableを1つ実装しようとしました。
しかし、それは例外を投げています:
選択が有効になっている場合、DataModelはorg.primefaces.model.SelectableDataModelを実装する必要があります。
オブジェクトクラスとマネージドBeanクラスの両方にDataModelを実装しましたが、エラーは同じです。これで、空白のテーブルのみが表示されます。助けてください。
RowSelectionを有効にして編集可能なDataTableを1つ実装しようとしました。
しかし、それは例外を投げています:
選択が有効になっている場合、DataModelはorg.primefaces.model.SelectableDataModelを実装する必要があります。
オブジェクトクラスとマネージドBeanクラスの両方にDataModelを実装しましたが、エラーは同じです。これで、空白のテーブルのみが表示されます。助けてください。
この問題には 2 つの解決策があります。
最初のものはシンプルです。あなたの問題を解決するはずrowKey="#{myEntity.carID}"
ですp:dataTable
このエラーは、基になるリストに新しい項目を追加しようとして、新しい項目の rowKey に値を割り当てるのを忘れた (rowKey が null である) 場合に発生する可能性があります。
ぼろきれによって与えられたソリューションに加えて、行キーが「NULL」の場合、またはリスト全体が「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}"
成功します。