2012-05-02 42 views
16

Làm cách nào để tùy chỉnh thông báo xác thực xuất hiện khi xác thực không thành công?Cách tùy chỉnh thông báo lỗi xác thực JSF

Đây là mã tôi có:

<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> 

Hiện nay thông điệp trông như thế này:

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

nào không phải là đặc biệt thân thiện với người.

Trả lời

37

Cách đơn giản nhất là đặt thuộc tính validatorMessage="my custom message" trong thẻ <h:inputText>.

Đối với một cách nâng cao hơn đọc bài viết này 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

Thật ngạc nhiên với tôi rằng không có cách nào để đặt thông báo "trực tiếp" trong một thuộc tính hoặc gì đó. Huh ... – Eleeist

+0

có, chỉnh sửa câu trả lời của tôi ... – Daniel

+2

Điều đó chắc chắn có ý nghĩa hơn. Nhưng nếu tôi có nhiều hơn một trình duyệt tính hợp lệ được gắn vào đầu vào và tôi muốn tùy chỉnh các thông điệp của mỗi người trong số họ? – Eleeist

9

Ngoài câu trả lời của Daniel bạn luôn có thể sử dụng thuộc tính label cho các thành phần đầu vào của bạn để loại bỏ các client-id (j_idt10:userNo:) từ lỗi thông điệp.

Ví dụ: với

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

sẽ sản xuất:

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

Nhãn thuộc tính có thể là một biểu hiện el cũng như để thay đổi phần này của các thông báo lỗi tự động.

3

Bạn có thể sử dụng thuộc tính validatorMessage của văn bản đầu vào. Sử dụng thuộc tính requiredMessage cho thông báo bắt buộc, nó khác với thông báo của trình duyệt tính hợp lệ.

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

bất kỳ mô tả – tod

+0

Mô tả đã thêm – omerhakanbilici

Các vấn đề liên quan