Задание разных сообщений об ошибках для разных составных компонентов - PullRequest
2 голосов
/ 12 февраля 2012

Есть ли способ получить ТРЕБУЕМЫЕ сообщения для различных типов составных компонентов?

Я бы хотел сказать что-то вроде следующего в пакете сообщений

javax.faces.component.UIInput.REQUIRED=Please enter a value for {0}
com.anon.sandbox.jsf.component.NameField.REQUIRED=ENTER A {} OR DIE
com.anon.sandbox.jsf.component.EmailField.REQUIRED=You forgot to enter a {0} address

Я мог бы сделать это путем реализации пользовательских валидаторов для каждого типа поля ввода, но, учитывая, что единственное поведение, которое я хочу настроить, - это сообщение об ошибке, которое выглядит как избыточное.

1 Ответ

1 голос
/ 12 февраля 2012

Используйте атрибут requiredMessage, чтобы указать их.

<h:inputText ... requiredMessage="#{cc.resourceBundleMap.requiredMessage}" />

В случае, если вы этого не знали, #{cc.resourceBundleMap} относится к пакету ресурсов для конкретного составного компонента, который идентифицируется файлом .properties с тем же именем файла, что и у составного компонента в той же папке.

Итак, представьте, что у вас есть составной файл компонента foo.xhtml, тогда вы можете указать локализованные сообщения в foo.properties (и, следовательно, foo_en.properties, foo_es.properties и т. Д.), Которые находятся в той же папке. Эти локализованные сообщения затем доступны вышеупомянутым #{cc.resourceBundleMap}.

...