Я создаю приложение JSF 2 и пытаюсь использовать проверку формы в компоненте вместо страницы лиц.Я также хотел бы использовать файл .properties для хранения сообщений.
Я посмотрел на этот вопрос , но я не думаю, что файл свойств настроен правильно.
Допустим, у меня есть bean-компонент с именем User в пакете с именем dev:
@ManagedBean
@SessionScoped
public class User implements Serializable {
@Pattern(pattern=".+@.+\\.[a-z]+", message="{dev.User.emailAddress}")
private String emailAddress;
// getter/setter
}
Я также создал файл 'ValidationMessages.properties' в WEB-INF / classes (IЯ использую Netbeans 7.0.1)
В файле ValidationMessages.properties у меня есть строка ключа / значения:
dev.User.emailAddress=Custom invalid email message
И мое представление (user.xhtml) выглядит следующим образомэто:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>User registration</title>
</h:head>
<h:body>
<h:form>
<h:inputText id="emailAddress" value="#{user.emailAddress}" required="true" />
<h:message for="emailAddress" />
<h:commandButton value="Ok" action="null" />
</h:form>
</h:body>
Когда я ввожу недопустимый адрес электронной почты и нажимаю кнопку, сообщение проверки на веб-странице гласит:
{dev.User.emailAddress}
вместо
Custom invalid email message
Может быть проблема в том, что я не зарегистрировал свой файл свойств в web.xml?
Я должен переключить required = "true" на @NotNull в bean-компоненте.Есть ли что-то еще, что мне нужно сделать, кроме как вставить это:
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
, как объяснено в блоге BalusC ?
Заранее спасибо!
/ Денис