2012-04-02 19 views
5

Tôi có văn bản đầu vào được ánh xạ tới thuộc tính Long.Cách tùy chỉnh thông điệp chuyển đổi JSF 'phải là một số bao gồm một hoặc nhiều chữ số'?

private Long length; 

<h:inputText value="#{bean.length}" /> 

Khi tôi nhập phi chữ số trong đó nhập văn bản, tôi nhận được lỗi chuyển đổi sau:

myForm:myField: 'someText' must be a number consisting of one or more digits.

tôi đã tự hỏi làm thế nào để tùy chỉnh thông điệp này đến:

length must be a number greater than zero.

Trả lời

9

Hoặc sử dụng converterMessage thuộc tính thành phần đầu vào của:

<h:inputText converterMessage="length must be a number greater than zero" /> 

(và đừng quên sử dụng <f:validateLongRange> để ngăn chặn người dùng có thể nhập các giá trị tiêu cực và cung cấp một validatorMessage!)

Hoặc tạo tệp thuộc tính trong đường dẫn lớp ghi đè thông báo mặc định của nội trang JSF LongConverter:

javax.faces.converter.LongConverter.LONG = length must be a number greater than zero 

và đang được đăng ký dưới dạng gói tin nhắn trong faces-config.xml:

<application> 
    <message-bundle>com.example.CustomMessages</message-bundle> 
</application> 

Ví dụ trên giả định rằng các tên tập tin là CustomMessages.properties và đang được đặt trong com.example gói. Bạn có thể đặt tên và đặt nó ở bất cứ đâu bạn muốn.

Bạn có thể tìm tổng quan về tất cả các phím tin nhắn như javax.faces.converter.LongConverter.LONG và các giá trị mặc định của chúng trong chương 2.5.2.4 của the JSF specification cũng được sao chép trong this answer.

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