RowEdit保留输入的旧值,并且不将值更新为null

时间:2017-07-06 21:26:31

标签: jsf datatable roweditor

我有一个html文本框帐号,我试图将文本框的值更新为null,并且不允许将其更新为null,调用是通过ajax进行的。我有一个        类似的文本框费用类型在同一页面上,并且工作得很好。这两列在数据库中都可以为空。当我检查调试模式时,帐号永远不会显示为空,而是显示db中保留的先前值。 OnRowedit方法 - > event.get object()始终具有以前的值。我看到很少有其他链接,其中提到init()是必需的,我在我的bean类中有。 请协助。任何指针都非常感谢。

下面是我的xhtml:

<p:column headerText="Account Number" width="65">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{record.acctNbr}" />
                    </f:facet>
                    <f:facet name="input">
                        <h:inputText id="formAcctNbr" label="Account Number"
                            value="#{record.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>



<p:column headerText="Fee Type" width="60">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{record.feeType}" />
                    </f:facet>
                    <f:facet name="input">
                        <h:inputText id="formFeeType" label="Fee Type" 
                            value="#{record.feeType}" maxlength="5"
                            validatorMessage="Fee Type is Numeric between 1 and 32767">
                            <f:validateLongRange minimum="1" maximum="32767" />                         
                        </h:inputText>
                        <h:message for="formFeeType" style="color:red" />
                    </f:facet>
                </p:cellEditor>
            </p:column>

以下是我的javaBean:

public class AcctRefTo implements Serializable {

 private Short feeType;
 private String acctNbr;

public Short getFeeType() {
        return feeType;
    }

    public void setFeeType(Short feeType) {
        this.feeType = feeType;
    }
public String getAcctNbr() {
        return acctNbr;
    }

public void setAcctNbr(String acctNbr) {
        if (acctNbr!= null) {
            this.acctNbr= acctNbr.trim();
        }
    }
}

0 个答案:

没有答案