我正在使用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是视图编组的。我有我所有的吸气剂和二传手。
问题是当我尝试访问使用变量personne
选择的select
时,我总是得到空指针。
答案 0 :(得分:0)
首先,确保您的<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
...
}
现在,您可以选择自己的人物了!记得将你班级的第一个字母大写:Personne ... Bonne chance!