2014-01-30 2 views
1

Мне нужно проверить два поля в форме: адрес электронной почты и имя. Письмо должно совпадать с patern [email protected], и имя должно содержать только буквы.jsf несколько пользовательских сообщений валидатора для regex

У меня есть custom-faces-messages.properties с сообщением, которое мне нужно отображать, когда шаблон не соответствует.

javax.faces.validator.RegexValidator.NOT_MATCHED = {1}: Validation Error: Value not according to pattern ''{0}''

Однако вместо {0}, который отображает картину в довольно уродливом виде, я хотел бы, чтобы отобразить пользовательский текст для каждой проверки. Ex для имени должно быть «Имя может содержать только буквы» и для электронной почты «Электронная почта не соответствует шаблону. Пример [email protected] '

Есть ли способ сделать это, используя файл свойств?

Заранее спасибо.

+0

Вы хотите получить новое сообщение для каждого поля? Это не представляется возможным, несмотря на то, что '{0}' и '{1}' могут быть заменены. – Tiny

+0

Да, я хотел бы иметь специальные сообщения. Есть ли способ передать некоторые параметры в файл свойств или что-то еще? – Steffi

ответ

1

Если ваши поля электронной почты и имени введены как h:inputText, то вы можете использовать атрибуты validator и validatorMessage. См. JSF VDL document.

2-й (более сложный) способ: создать собственный валидатор. У меня есть собственный валидатор по электронной почте, и я называю это в приложении, как это:

<h:inputText id="email" label="#{msg.email}" 
    value="#{registrationForm.email}" 
    size="40" maxlength="80" required="true"> 
    <f:converter converterId="lowerCase" /> 
    <f:validator validatorId="email-validator" /> 
</h:inputText> 

третий способ: проверить его в поддержке боба и отображения сообщения, которое вы хотите.

0

Да, есть способ вызвать это из файла свойств. Я так делаю. создайте файл message.properties в пакете свойств в вашем проекте. (мой путь: src/main/bla.bla.bla/bean/properties/message.properties)

сейчас;

/src/main/webapp/WEB-INF/faces-config.xml Редактировать этот файл. добавить эти строки ниже

<application> 
    your.src.bla.properties.message (this is path to message.properties file) 
</application> 

(your.src.bla.properties.message) DONT изменение properties.message части как обратное направление.

и добавьте следующую строку в файл message.properties:

javax.faces.validator.RegexValidator.NOT_MATCHED="Your message comes here" 

Теперь остановить и начать свой проект, потому что он не может быть горячей замены. вы увидите свое сообщение в диалоговом окне, всплывающие окна в правом углу экрана.

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