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 :

Problème avec l'affichage de message d'erreur


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 69
    Par défaut Problème avec l'affichage de message d'erreur
    Bonjours à tous,

    j'ai des problèmes pour afficher mes messages d'erreurs. Il ne s'affiche pas où je le souhaite.

    dans ma page jsp j'ai le code suivant (bout de code) :
    ---
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     <h:panelGrid columns="3">
                        <h:outputText value="Login :"/>
                        <h:inputText id="login" value="#{loginutilisateur.login}" title="Saisissez votre login"/>
                        <h:message errorStyle="color: red" for="login"/>
                        <h:outputText value="Mot de passe :"/>
                        <h:inputSecret id="motdepasse" value="#{loginutilisateur.mdp}" title="Saisissez votre mot de passe"/>
                        <h:message errorStyle="color: red" for="motdepasse"/>
                    </h:panelGrid>
                     <h:panelGrid columns="2">
                    <h:commandButton id="valider" action="#{loginutilisateur.valider}" value="Valider"/>
                    <br>
                    <h:commandButton action="#{loginutilisateur.annuler}" value="Annuler" onclick="return confirm('Êtes-vous sur?')" immediate="true"/>
                    </h:panelGrid>
                    <h:messages  errorStyle="color: red" infoStyle="color: green" />
    ----

    dans la classe java ( de mon bean managé ) j'ai une méthode addMessage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     public void addMessage(String id,String summary,String detail,FacesMessage.Severity severity) {
            FacesContext facesContext = FacesContext.getCurrentInstance();
            FacesMessage facesMessage = new FacesMessage();
            facesMessage.setSeverity(severity);
            facesMessage.setSummary(summary);
            facesMessage.setDetail(detail);
            facesContext.addMessage(id,facesMessage);
        }
    pour les champs login et mot de passe j'ai réalisé 2 méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          public void erreurSaisieLogin(String id) {
            String summary = "Le champ login doit être renseigné";
            addMessage(id,summary,null,FacesMessage.SEVERITY_ERROR);
        }
     
         public void erreurSaisieMdp(String id) {
            String summary = "Le champ mot de passe doit être renseigné";
            addMessage(id,summary,null,FacesMessage.SEVERITY_ERROR);
        }
    lors du clique sur le bouton valider on appel la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
         public String valider() {
            if (getLogin().equals("") || getMdp().equals("")) {
                if (getLogin().equals("")) {
                   erreurSaisieLogin("login");
                }
                if(getMdp().equals("")) {
                   erreurSaisieMdp("motdepasse");
                }
                return "connection";
            }
             //---- on fait ensuite d'autre traitement ///----
    Le problème est que les différents message d'erreurs ne s'affichent pas à côté des champs de saisis mais en dessous des boutons les uns à la suite des autres.

    Merci de votre aide
    @+

  2. #2
    Membre éclairé Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Par défaut
    essaye de supprimer la derniere ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <h:messages  errorStyle="color: red" infoStyle="color: green" />
    car le <h:messages > affiche tous les messages meme si tu fais des <message for>

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    pour afficher un message d'erreur à côté du champ en utilisant <h:message for=".."/>, tu dois passer le client Id du composant et non son id. Le cient id est calculé par le système en fonction du container parent etc.
    Pour le connaitre, tu peux binder ton composant et ainsi avoir une reference. En appelant getClientId(FacesConext.getCurrentInstance()), tu pourras le connaitre.
    Ou alors tu peux le rechercher dans ton arbre de composant en partant du ViewRoot. Quoi qu'il en soit, il ne faut pas passer l'id du composant pour afficher un message mais son clientId

Discussions similaires

  1. Gérer les erreurs de réseau avec l'affichage de message
    Par Lucas Panny dans le forum Accès aux données
    Réponses: 2
    Dernier message: 19/05/2010, 10h09
  2. [Forum] Problème avec l'affichage des messages
    Par mic79 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 12/08/2008, 12h45
  3. problème avec le fichier des messages d'erreurs
    Par s.mustapha86 dans le forum Struts 1
    Réponses: 4
    Dernier message: 15/07/2008, 15h37
  4. Affichage des message d'erreurs avec Struts
    Par stujava dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/08/2007, 21h12
  5. Réponses: 11
    Dernier message: 16/12/2003, 19h58

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