IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Modifier les messages d'erreur de la balise <h:message>


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Par défaut Modifier les messages d'erreur de la balise <h:message>
    Bonjour,

    J'ai un formulaire JSF associé aux attributs d'un bean. Le type des attributs à saisir est un integer.

    J'obtiens donc, sans validator, ni converter, par le biais de la balise <h:message> un message d'erreur si je saisis autre chose qu'un numérique.

    Or, ce message d'erreur n'est pas très explicite, comment puis je faire pour le modifier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:inputText id="qty" value="#{var.qty}">				<f:validator validatorId="formValidator"/>
    </h:inputText>
    <h:message for="qty" style="color:red;" showDetail="true"/>
    En vous remerciant à l'avance,
    Séverine

  2. #2
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:message detailFormat="Blablabla Ton message" for="qty" style="color:red;" showDetail="true"/>

  3. #3
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 42
    Par défaut
    Il faut que tu ajoutes un fichier properties appelé "<comme tu veux>.properties" à ton projet.

    Le composant h:message ira consulter si un message plus explicite y a été défini pour l'erreur correspondante.

    Pour moi par exemple il contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    javax.faces.component.UIInput.REQUIRED_detail=Champ obligatoire
    javax.faces.validator.LengthValidator.MAXIMUM=Ce champ doit contenir moins de {0} caractères
    javax.faces.validator.LengthValidator.MINIMUM=Ce champ doit contenir au moins {0} caractères
    Pour mon composant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:inputText id="userNameInput" value="#{user.name}" size="20" maxlength="30" required="true">
    		<f:validateLength minimum="5" maximum="30"/>
    </h:inputText>
    <h:message for="userNameInput" errorStyle="color: red"/>
    Bon maintenant pour le message d'erreur spécifique à un type différent, je te laisse chercher un peu dans la javadoc, je manque un peu de temps...

  4. #4
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 42
    Par défaut
    Ah oui tiens, elle a l'air un peu mieux ta solution Elwe...

    Par contre chez moi ça marche pas, tag non reconnu pour ce composant... Tu utilises peut-être une version plus récente des librairies JSF.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Par défaut Merci :)
    Merci beaucoup de vos réponse.

    DetailFormat ne fonctionne pas par contre , il ne reconnait pas cet attribut :
    org.apache.jasper.JasperException: /pages/admin_edit_rulesbydivision.jsp(71,7) L'attribut detailFormat est incorrect pour le tag message d'après la TLD indiquée
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    com.ibm.faces.context.MultipartExternalContextImpl.dispatch(MultipartExternalContextImpl.java:320)
    com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:142)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    J'ai effectivement dans le projet un fichier properties, j'ai essayé d'y mettre d'autres valeurs pour les messages d'erreur mais là encore ça n'a rien donné :

    javax.faces.component.UIInput.CONVERSION=Format incorrect

    Je continue à chercher, merci pour vos réponses !
    Cordialement,
    Séverine

  6. #6
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 42
    Par défaut
    Hello!

    Je reviens compléter ce que je disai tout à l'heure, j'ai pas été très clair faute de temps, là ça va mieux.

    Ton fichier "Nom_de_ficher.properties" doit se trouver dans le chemin suivant:
    WEB-INF/classes/

    et la jonction avec ta page jsp se fait en ajoutant ceci dans ton faces-config.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <application>
    	<message-bundle>Nom_de_ficher</message-bundle>
    </application>
    Pas besoin de mettre l'extension .properties.

    Apparement, sans avoir testé, cela devrait ressembler à ça pour une erreur de type:

    javax.faces.component.UIInput.COMPONENT_TYPE = veuillez tapper un entier

  7. #7
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    oupsss !
    J'utilise tomahawk ...
    et donc c'est plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <t:message detailFormat="Blabla message"  for="qty" style="color:red;" showDetail="true"/>

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Par défaut Merci :)
    Merci à vous tous !!

    C'est bon ça marche, j'ai rajouté ton code gumpy dans mon faces-config et ça marche nicquel !!!

    Merci beaucoup
    séverine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Modifier les messages d'erreur standard
    Par barbug dans le forum Symfony
    Réponses: 5
    Dernier message: 16/03/2011, 10h28
  2. Réponses: 0
    Dernier message: 01/11/2010, 18h55
  3. Erreur qui ne retourne pas un message d'erreur
    Par pierrot10 dans le forum Langage
    Réponses: 4
    Dernier message: 30/04/2010, 19h04
  4. Modifier les pages d'erreur par défaut de tomcat
    Par PaladinFr dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 19/09/2008, 14h27
  5. [MySQL] Modifier les messages d'erreur.
    Par vampiloup dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/03/2006, 10h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo