我正在使用JSF和Primefaces,并且我正在使用具有单一选择单选按钮的数据表。
代码如下:
<p:dataTable rendered="#{BeforBean.bol}" id="radioDT" var="per"
value="#{BeforBean.per}" paginator="true" selection="#{BeforBean.select}" rowKey="#{per.nom}" >
<f:facet name="header">
Résulat de votre Recherche
</f:facet>
<p:column selectionMode="single" style="width:2%;text-align:center"/>
<p:column headerText="nom">
<h:outputText value="#{per.nom}" />
</p:column>
<p:column headerText="Prenom">
<h:outputText value="#{per.prenom}" />
</p:column>
<p:column headerText="CIN">
<h:outputText value="#{per.CIN}" />
</p:column>
<p:column headerText="Poste">
<h:outputText value="#{per.poste}" />
</p:column>
</p:dataTable>
和我的豆子:
private List<personne> per = new ArrayList<personne>();
private personne select;
bean是可视范围的。我有所有的getter和setter。
问题是当我试图访问与变量select
选择的personne
时,我总是得到空指针。
首先,确保您的<p:datatable>
在<h:form>
内部。
接下来,尝试在<p:datatable>
中添加以下内容:
<p:ajax event="rowSelect" listener="#{BeforBean.onRowSelect}"/>
最后,在BeforBean上创建以下方法:
public void onRowSelect(SelectEvent event){
...
select = (Personne) event.getObject(); // your personne object is called select
...
}
现在你可以选择你的个人对象了!记住你的class的第一个字母要大写:Personne…好的机会!