2013-10-11 22 views
2

我试过这段代码窗体上submetting场出生的日期:获取组件id上的错误验证消息

<h:form> 
    <h2>JSF Registration App</h2> 
    <h4>Registration Form</h4> 
    <table> 
     <tr> 
      <td>First Name:</td> 
      <td> 
     <h:inputText label="First Name" id="fname" value="#{mybean.firstName}" required="true" /> 
       <h:message for="fname" /> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <h:inputText value="#{userBean.dob}" id="dob" required="true" > 
        <f:convertDateTime pattern="MM-dd-yy"/> 
       </h:inputText> (mm-dd-yy) 
       <h:message for="dob"/> 
      </td> 
     </tr> 

    </table> 

    <p> 
     <h:commandButton value="clique ici pour valider" action="Register" /> 
    </p> 

</h:form> 

我得到这个消息离开现场后空

(mm-dd-yy) j_idt5:dob : erreur de validation. Vous devez indiquer une valeur. 

为什么会有jsf自动生成id“j_idt5:d ob“内的消息?

回答

4

输入组件的客户端ID只要成为默认的转换/验证消息的标签,你没有明确指定输入成分,像这样的label属性:

<h:inputText ... label="Date of birth" /> 

如果你这样做,那么消息将变为:

出生日期:erreur de validation。 Vous devez indiquer une valeur。


在客户端ID的j_idt5<h:form>到来。如果给它像id="register"固定ID(并保持省略输入组件的label),则该消息变为:

寄存器:DOB:ERREUR德验证。 Vous devez indiquer une valeur。


如果必要的话,可以通过validatorMessage属性来覆盖整个验证消息。

<h:inputText ... validatorMessage="Please enter date of birth." /> 

请输入出生日期。


等效地,从<f:convertDateTime>的转换错误消息通过converterMessage属性是可重写的。

<h:inputText ... converterMessage="Please enter date of birth in mm-dd-yy format." /> 

请MM-DD-YY格式输入出生日期。