Как настроить сообщение об ошибке проверки JSF - программирование
Подтвердить что ты не робот

Как настроить сообщение об ошибке проверки JSF

Как настроить сообщение проверки, которое появляется при завершении проверки?

Вот код, который у меня есть:

<h:form>
    <p><h:inputText
           id="userNo"
           title="Type a number from 0 to 10:">
       <f:validateLongRange
           minimum="3"
           maximum="6"/>
       </h:inputText>

       <h:commandButton id="submit" value="Submit"
           action="response"/>
    </p>
    <h:message showSummary="true" showDetail="false"
        id="errors1"
        for="userNo"/>
</h:form>

В настоящее время сообщение выглядит следующим образом:

j_idt10:userNo: Validation Error: Specified attribute is not between the expected values of 3 and 6. 

Это не очень удобно.

4b9b3361

Ответ 1

Самый простой способ - установить атрибут validatorMessage="my custom message" в теге <h:inputText>.

Для более продвинутого способа ознакомьтесь с этой статьей Настроить сообщение об ошибке проверки в JSF 2.0

И здесь полная ссылка на все доступное сообщение, которое вы можете переопределить в JSF 2.0.x

Ответ 2

В дополнение к ответу Даниэля вы всегда можете использовать атрибут label для своих компонентов ввода для удаления идентификатора клиента (j_idt10:userNo:) из сообщения об ошибке.

например. с

<h:inputText id="userNo" title="Type a number from 0 to 10:"
             label="User number">
  <f:validateLongRange
           minimum="3"
           maximum="6"/>
</h:inputText>

будет производить:

Номер пользователя: Ошибка проверки: указанный атрибут не находится между ожидаемые значения 3 и 6.

Атрибут метки может также быть выражением el, чтобы динамически изменять эту часть сообщения об ошибке.

Ответ 3

Вы можете использовать свойство validatorMessage входного текста. Используйте свойство requiredMessage для требуемого сообщения, оно отличается от сообщения валидатора.

<h:input text required ="true" validatorMessage="Enter user friendly message">
    <f:validateLongRange
        minimum="3"
        maximum="6"/>
</h:inputText>