1

仅当用户未在给定的 p:inputText 字段中输入任何值时,我才想验证以下数据表

<p:dataTable id="depositDataTable" value="#{pc_intimationDeposit.pendingRep.depositeBeans}" var="deposit">
    <p:column style="text-align:right">
        <h:outputText value="#{deposit.depParticulars}" />
    </p:column>
   <p:column id="value">
        <h:inputText id="depositDetails" class="right_input" value="#{deposit.amnt}" tabindex="2"                                       converterMessage="Please Enter Numbner's Only" validatorMessage="please"> 
           <f:convertNumber  pattern="##,####,##0.00" for="depositDetails" type="currency" />
        </h:inputText>
<p:message id="errMsgDepositDetails" for="depositDetails" display="text"></p:message>   
    </p:column>
</p:dataTable>

pc_intimationDeposit.pendingRep.depositeBeans----> 是 depositBeans 的列表(大小 3)

我使用 f:convertNumber 输入的值符合我们的要求

但是如果用户没有输入一个单一的值,那么我需要验证空检查,即用户必须输入任何一个字段

我需要在使用的数据表顶部显示错误消息

请帮助我提前谢谢你

4

1 回答 1

1
  • 如果您想填充每个 depositDetail输入,请用 标记它们required=true
  • 如果您只想填充其中一个,请在您的操作方法上迭代您的模型以确保至少有一个不为空(此处不应有空值):

    boolean filled = false;
    for (DepositeBean dep : depositeBeans){
    if (!dep.getAmnt.equals("")){
        filled = true;
    }
    }
    if (!filled){
       FacesContext.getCurrentInstance().addMessage(null, 
         new FacesMessage(FacesMessage.SEVERITY_ERROR, "You have to fill at least one deposit detail field", null));
    }
    

要显示消息,请添加h:message标签并将其指向您的表格:

<h:message for="depositDataTable" style="color:red" />

于 2013-02-09T11:32:58.513 回答