我在更新数据表中的对象时遇到问题,即使它与使用 incell edeting 的其他对象一起工作得很好:我有一个名为 Audit 的对象,其中包括一个对象Statu 和一个像这样的对象 utilisateur
private int id;
private Statu statu;
private Utilisateur utilisateur;
private OrganismeAudite organismeAudite;
private String date;
private String personneRencontre;
在数据表中我做:
<p:dataTable var="car" value="#{AuditBean.listAudit}" id="carList" editable="true">
<p:ajax event="rowEdit" update="@this"
listener="#{AuditBean.rowEditListener}" />
<f:facet name="header">
Modification
</f:facet>
<p:column headerText="ID" style="width:125px">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.id}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{car.id}" style="width:100%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Date" style="width:125px">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.date}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{car.date}" style="width:100%" label="Year" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Personne Rencontre" style="width:125px">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.personneRencontre}" />
</f:facet>
<f:facet name="input">
<h:inputText value="#{car.personneRencontre}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Responsable Audit">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.utilisateur.nom}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="idUtilisateur" value="#{car.utilisateur.idutilisateur}">
<f:selectItems value="#{UtilisateurBean.listUtilsa}"
var="utilisateur" itemLabel="#{car.utilisateur.nom}"
itemValue="#{car.utilisateur.idutilisateur}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Statut Audit" style="width:125px">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.statu.libelle}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="idStatut" value="#{car.statu.id}">
<f:selectItems var="statu" value="#{StatusBeane.listSta}"
itemLabel="#{car.statu.libelle}"
itemValue="#{car.statu.id}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Organisme Audité" style="width:125px">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.organismeAudite.nom}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="idOrganisme" value="#{AuditBean.idOrganisme}">
<f:selectItems var="orgStA" value="#{OrganismeAuditeBean.listOrga}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Options" style="width:50px">
<p:rowEditor />
</p:column>
</p:dataTable>
负责任的审计列更新得很好,但它在状态审计列中不起作用。它们都是一对多的关系(我使用的是hibernate和spring ioc)
在 bean 中,rowlistener 是这样的:
public void rowEditListener(RowEditEvent ev) {
try {
Audit userEdit = (Audit) ev.getObject();
Utilisateur u= new Utilisateur();
Statu sta=new Statu();
System.out.println(userEdit.getStatu().getId());
// getUserEJB().save(userEdit);
System.out.println(userEdit.getDate() + " - " + userEdit.getId()+" - "+userEdit.getUtilisateur().getIdutilisateur()+" - "+userEdit.getStatu().getLibelle());
resp.update(userEdit);
} catch (Exception e) {
e.printStackTrace();
}
}
现在,当我选择一个状态时,userEdit.getStatu().getLibelle() 会向我显示原始状态,而不是我从列表中选择的状态,但是如果我单击检查 incon,它每次只会保存一个值第二元素(状态)!!!!!!!!!!!!!!!!!!
我不知道我做错了什么提前谢谢:)