2012-04-27 1 views
3

Мой вопрос в основном такой же, как Custom validation message for bean validation. Однако я не могу решить проблему.Как преобразовать настроенное сообщение об ошибке для проверки JAN 303 bean?

Класс боб:

public class PersonalInfoBean { 
    @Size(min=5, max=55, message="{invalid_name}") 
    String name; 
    ... 
} 

Я создал messages.properties в пакете в Src папке проекта Eclipse.

invalid_name=Please enter a valid name 

Я зарегистрировал файл в лицах-config.xml:

<application> 
    <message-bundle>com.webage.survey.Messages</message-bundle> 
</application> 

facelet файл имеет:

<h:inputText value="#{personalInfo.name}" id="name"/> <h:message for="name" style="color: red" /><br/> 

Когда я отправить форму, я вижу только {invalid_name}, как сообщение об ошибке, а не «Пожалуйста, введите действительное имя».

Я тестировал это с помощью JBoss 6 и WebSphere 8 с тем же результатом.

ответ

4

Вы смешиваете JSR 303 Bean Validation framework с встроенной проверкой JSF. JSR 303 Framework Validation не является частью структуры JSF. Это полностью независимая система проверки, для которой JSF просто имеет поддержку интеграции.

Вы должны указать JSR 303 сообщений Bean проверку в различных свойствах файла, а не с точным имя файла ValidationMessages.properties, который может быть локализован с ValidationMessages_xx_XX.properties файлов. Эти файлы должны быть помещены в корень пути к классам.

Не нужно регистрировать его в faces-config.xml. <message-bundle> используется только для JSF встроенных преобразователей и валидаторов, такие как required="true", <f:validateRegex>, <f:convertDateTime> и т.д.

+0

Он работал! Мне пришлось поставить ValidationMessages.properties в пакет по умолчанию (root). – RajV

 Смежные вопросы

  • Нет связанных вопросов^_^