我有一个数据表,我使用onRowEdit事件将字段的值更新为null,但它始终显示以前保持的值。我可以将字段值更新为除null之外的任何内容。我在论坛中查找解决方案但找不到它。请帮忙。非常感谢提前。
下面是我的xhtml:
<p:dataTable id="dtable" var="glAcctRefRecord"
value="#{acctBean.glAcctRefRecords}" editable="true"
paginator="true" rows="10" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
>
<p:ajax event="rowEdit" listener="#{acctBean.onRowEdit}" update=":dtableform:msgs" resetValues="true"/>
<p:ajax event="rowEditCancel" listener="#{acctBean.onRowCancel}" update=":dtableform:msgs"/>
<p:column headerText="Unamortized Balance GL Account Number" width="65">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{glAcctRefRecord.acctNbr}" />
</f:facet>
<f:facet name="input">
<h:inputText id="formUnamBalAcctNbr" label="Account Number"
value="#{glAcctRefRecord.acctNbr}" maxlength="6"
validatorMessage="Account Number is Numeric of lenghth '6'">
<f:validateLength minimum="6" maximum="6" />
<f:validateRegex pattern="[0-9]*" />
</h:inputText>
<h:message for="formAcctNbr" style="color:red" />
</f:facet>
</p:cellEditor>
</p:column>
以下是我的AcctBean:
@ManagedBean(name = "AcctRefMBean")
@ViewScoped
public class GlAcctRefMBean implements Serializable {
private static final long serialVersionUID = 1L;
private String acctgStream;
private String acctNbr;
private AcctRefTo acctRefRecord;
private List<GlAcctRefTo> glAcctRefRecords;
@PostConstruct
public void init() {
acctRefRecords = jetSessionFacadebean.getacctgRefByAcctgStreamCode(
acctgStream, acctNbr);
}
public void updateRecord(GlAcctRefTo to) {
jetSessionFacadebean.updateGlAccntRef(to);
}
public void onRowEdit(RowEditEvent event) {
AcctRefTo to = (AcctRefTo ) event.getObject();
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
String userId = (String) session.getAttribute(WebAppConstants.CURRENT_USER_ID);
if (userId == null) {
userId = WebAppConstants.DEFAULT_CURRENT_USER_ID;
}
to.setUpdatedByUserID(userId);
updateRecord(to);
FacesMessage msg = new FacesMessage("Reference Data Updated for Account#" + to.getAcctNbr());
FacesContext.getCurrentInstance().addMessage("null", msg);
}
以下是我的目标:
public class AcctRefTo implements Serializable {
private String acctNbr;
public String getAcctNbr() {
return acctNbr;
}
public void setAcctNbr(String acctNbr) {
this.acctNbr= acctNbr;
}
}