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