2013-10-11 35 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格式輸入出生日期。