2012-05-02 4 views
16

Как настроить сообщение проверки, которое появляется при завершении проверки?Как настроить сообщение об ошибке проверки 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. 

Что не особенно удобно.

ответ

37

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

Для более продвинутого способа читать эту статью Customize validation error message in JSF 2.0

And here a complete Reference to all available message that you can override in JSF 2.0.x

+0

Удивительно, что нет способа установить сообщение «на лету» в атрибуте или что-то в этом роде. Huh ... – Eleeist

+0

есть, отредактировал мой ответ ... – Daniel

+2

Это определенно имеет больше смысла. Но что, если у меня есть несколько валидаторов, прикрепленных к вводу, и я хочу настроить сообщения каждого из них? – Eleeist

9

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

E.g. с

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

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

атрибут

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

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

3

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

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

любое описание – tod

+0

Описание добавлено – omerhakanbilici

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