Как настроить сообщение преобразования JSF «должно быть числом, состоящим из одной или нескольких цифр»? - PullRequest
5 голосов
/ 02 апреля 2012

У меня есть входной текст, который сопоставлен со свойством Long.

private Long length;

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

Когда я ввожу не цифры в этом тексте ввода, я получаю следующую ошибку преобразования:

myForm: myField: 'someText' должен быть числом, состоящим из одной или нескольких цифр.

Мне было интересно, как настроить это сообщение для:

длина должна быть числом больше нуля.

1 Ответ

9 голосов
/ 02 апреля 2012

Либо используйте атрибут converterMessage компонента ввода:

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

(и не забудьте использовать <f:validateLongRange>, чтобы запретить пользователям вводить отрицательные значениязначения и укажите validatorMessage!)

Или создайте файл свойств в пути к классам, который переопределяет стандартное сообщение встроенного JSF LongConverter:

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

и зарегистрирован как пакет сообщений в faces-config.xml:

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

В приведенном выше примере предполагается, что имя файла CustomMessages.properties и помещено в пакет com.example.Вы можете называть и размещать его в любом месте.

Обзор всех ключей сообщений, таких как javax.faces.converter.LongConverter.LONG и их значений по умолчанию, можно найти в главе 2.5.2.4 спецификации JSF , которая являетсятакже скопировано в этот ответ .

...