Я думаю, что вы используете выбор строки неправильно.Атрибут rowSelectListener
должен указывать на метод с этой подписью (что касается Primefaces showcase ):
public void onRowSelect(SelectEvent event) { ... }
В вашем p:dataTable
вам необходимо обратиться к этому методуway:
<p:dataTable var="car" value="#{tableBean.cars}" paginator="true" rows="10"
selection="#{tableBean.selectedCar}" selectionMode="single"
rowSelectListener="#{tableBean.onRowSelect}"
Обратите внимание, как вызывается метод слушателя.
При этом вы получаете выбранный объект строки в tableBean.selectedCar
.
Полный пример приведенв витрине (ссылка выше).
ОБНОВЛЕНИЕ Из ваших комментариев:
Это проблема:
value="#{projet.init()}"
Атрибут значения долженобратитесь к списку или тому, что содержит ваши данные, а не к методу.Если у вас есть, например, класс Project и вы хотите отобразить список проектов в таблице, ваш компонент поддержки должен содержать что-то вроде этого:
private List<Project> projects;
public List<Project> getProjects() {
return projects;
}
public void setProjects(List<Project> projects) {
this.projects = projects;
}
В витрине primefaces егосписок carSmall
, который делает то же самое.