2012-05-02 87 views
16

如何自定義驗證失敗時出現的驗證消息?如何自定義JSF驗證錯誤消息

這裏是我的代碼:

<h:form> 
    <p><h:inputText 
      id="userNo" 
      title="Type a number from 0 to 10:"> 
     <f:validateLongRange 
      minimum="3" 
      maximum="6"/> 
     </h:inputText> 

     <h:commandButton id="submit" value="Submit" 
      action="response"/> 
    </p> 
    <h:message showSummary="true" showDetail="false" 
     id="errors1" 
     for="userNo"/> 
</h:form> 

目前的消息是這樣的:

j_idt10:userNo: Validation Error: Specified attribute is not between the expected values of 3 and 6. 

沒有特別人性化。

回答

37

最簡單的方法是在<h:inputText>標記中設置validatorMessage="my custom message"屬性。

對於閱讀這篇文章Customize validation error message in JSF 2.0

And here a complete Reference to all available message that you can override in JSF 2.0.x

+0

我很驚訝沒有辦法在屬性或其他內容中設置消息「on-the-fly」。呃... – Eleeist

+0

還有,編輯我的答案... – Daniel

+2

這絕對是更有意義。但是如果我有多個驗證器附加到輸入中,並且我想定製它們中的每一個的消息呢? – Eleeist

9

除了丹尼爾的回答你總是可以使用label屬性爲你輸入組件從錯誤刪除客戶端ID(j_idt10:userNo:)更先進的方法信息。

E.g.與

<h:inputText id="userNo" title="Type a number from 0 to 10:" 
      label="User number"> 
    <f:validateLongRange 
      minimum="3" 
      maximum="6"/> 
</h:inputText> 

會產生:

User number: Validation Error: Specified attribute is not between the expected values of 3 and 6.

標籤屬性可以是一個EL表達以及動態地改變錯誤信息的這一部分。

3

您可以使用輸入文本的validatorMessage屬性。對required消息使用requiredMessage屬性,它與驗證器消息不同。

<h:input text required ="true" validatorMessage="Enter user friendly message"> 
    <f:validateLongRange 
     minimum="3" 
     maximum="6"/> 
</h:inputText> 
+2

任何描述 – tod

+0

添加說明 – omerhakanbilici