web-dev-qa-db-fra.com

Comment personnaliser le message d'erreur de validation JSF

Comment personnaliser le message de validation qui apparaît lorsque la validation échoue?

Voici le code que j'ai:

<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>

Actuellement, le message ressemble à ceci:

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

Ce qui n'est pas particulièrement convivial.

18
Eleeist

Le moyen le plus simple serait de définir le validatorMessage="my custom message" attribut dans <h:inputText> tag.

Pour un moyen plus avancé, lisez cet article Personnaliser le message d'erreur de validation dans JSF 2.

Et voici une référence complète à tous les messages disponibles que vous pouvez remplacer dans JSF 2.0.x

42
Daniel

En plus de la réponse de Daniel, vous pouvez toujours utiliser l'attribut label pour vos composants d'entrée pour supprimer le client-id (j_idt10:userNo:) du message d'erreur.

Par exemple. avec

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

produira:

Numéro d'utilisateur: erreur de validation: l'attribut spécifié n'est pas compris entre les valeurs attendues de 3 et 6.

L'attribut label peut également être une expression el pour modifier dynamiquement cette partie du message d'erreur.

10
Matt Handy

Vous pouvez utiliser la propriété validatorMessage du texte d'entrée. Utilisez la propriété requiredMessage pour le message requis, elle est différente du message du validateur.

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