Java 如何从datatable中移交行对象

Java 如何从datatable中移交行对象,java,jsf,primefaces,Java,Jsf,Primefaces,我有一个PrimeFaces数据表,有很多条目。单击一行时,我会在此处执行以下操作: <p:ajax event="rowSelect" listener="#{detailsBean.showData(data)}"> 所以我想做的是在我的bean中调用一个方法,并从单击的表行中移交数据,但是当我调试它时,对象总是空的。我不知道该怎么处理。怎么了 以下是如何从datatable中获取所选项目 xhtml: <p:datatable value="#{yourBean.l

我有一个PrimeFaces数据表,有很多条目。单击一行时,我会在此处执行以下操作:

<p:ajax event="rowSelect" listener="#{detailsBean.showData(data)}">


所以我想做的是在我的bean中调用一个方法,并从单击的表行中移交数据,但是当我调试它时,对象总是空的。我不知道该怎么处理。怎么了

以下是如何从datatable中获取所选项目

xhtml:

<p:datatable value="#{yourBean.listObject}" selection="single" ---- and other suff---->

    <p:ajax event="rowSelect" listener=#"{yourBean.aMethodInBean}"/>

</p:datatable>

豆子:

YourObject YourObject;
列表对象;
-----
公开作废Amethonbian(选择事件){
yourObject=(yourObject)event.getObject();
}
Xhtml:

<p:dataTable    value="#{bean.list}" selectionMode="single" selection="{bean.selectedEmployee}">

      <p:ajax event="rowSelect"  listener="#{bean.anyMethod()}"/>

</p:dataTable>

这里ajax不是强制性的

豆子:

 List<Employee> list ;
 Employee selectedEmployee;


 public void anyMethod(){

 }
列表;
员工选择员工;
公共方法(){
}

您是否尝试过在数据表上启用
选择
,例如
selection=“#{detailsBean.selectedRecord}”
然后将
detailsBean.showData
更改为使用
this.selectedRecord
而不是使用参数?(您的
p:ajax
应该有
process=“@this”
至少…)以及我应该将什么参数从前端传递到后端?那么哪个参数应该是SelectEvent呢?不,只需像那样使用没有参数的侦听器。请看这里的selectevents示例
 List<Employee> list ;
 Employee selectedEmployee;


 public void anyMethod(){

 }