RowSelectionを有効にして1つのDataTable Editableを実装しようとしていました。
しかし、それは例外を投げています:
選択が有効な場合、DataModelはorg.primefaces.model.SelectableDataModelを実装する必要があります。
オブジェクトクラスとマネージドBeanクラスの両方にDataModelを実装しましたが、エラーは同じです。これで、空のテーブルのみが表示されます。助けてください。
この問題には2つの解決策があります。
1つ目はSimplerです。 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}"
成功します。