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 :

Les messages avec JSF


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Les messages avec JSF
    bonjour,
    je voudrais savoir comment afficher les messages d'erreur en jsf ..j'ai un formulaire d'inscription gérer par un managed bean "UtilBean".et dans sa métode "inscrire" j'ai différents messages à afficher dans une variable "message" dans la page du site j'ai utilisé un tag outPutLabel dans ma page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputLabel  style="color:red;" value="#{UtilBean.message}"/>
    mais le prob que le message reste affiché dans la page !!!!!

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    est-ce qu'il y a une solution pour afficher les messages d'erreur dans mes pages jsp ???
    ou je voudrais faire des pages error.jsp pour faire ceci et puis retourner à la page initiale ???

    et merci d'avance

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Salut !

    Tu n'as pas besoin d'utiliser un outputLabel, Jsf fournit un composant pour les messages d'erreur

    Tu as le tag <h:message /> pour afficher un message d'erreur spécifique à un champ et <h:messages /> pour afficher tous les messages d'erreurs.
    Ils gèrent eux même le masquages et l'affichage des messages d'erreur.


    J'ajouterais (ca a l'air d'être ton besoin) que si tu souhaites créer les messages d'erreur toi même coté serveur, ce n'est pas un problème. Tu pourrais utiliser un validator qui créera le ou les messages d'erreur.
    Validator qui sera appelé par ton action jsf.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class InscriptionValidator implements Validator {
     
    	public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
    		if (!value.equals("expectedValue"){
    			throw new ValidatorException(new FacesMessage("Erreur de saisie"));
    		}
    	}
     
    }
    Ils flottent tous en bas

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je rajoute que, si dans une méthode d'action tu veux générer un message d'erreur, il suffit d'appeler la méthode addMessage de FacesContext.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    je rajoute que, si dans une méthode d'action tu veux générer un message d'erreur, il suffit d'appeler la méthode addMessage de FacesContext.
    Exact
    Ils flottent tous en bas

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    je rajoute que, si dans une méthode d'action tu veux générer un message d'erreur, il suffit d'appeler la méthode addMessage de FacesContext.
    oui c'est tout à fait ça et voiçi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     public String connecter(){
           String droi="";
            message="";
           invetat=false;
           try{
     
                pers=loginService.findByLoginAndPassword(login,password);
     
                if(pers!=null){
                    if(pers.getDroit().equals("admin")){
                        droi= "admin";
                    }else if(pers.getDroit().equals("user")){
                        droi="user";
                    }System.out.println("******DROIT****"+droi);
                    changeretat();
                    return droi;
     
                }else {
                    message=" Echec de connexion ,veuillez vérifier votre login et mot de passe!";
                    style_message="err_message";
                    this.login="";
                    this.password="";
     
                    return "invalid";
                }
            }catch(Exception e){
                e.printStackTrace();
                message=" Echec de connexion ,veuillez vérifier votre login et mot de passe!";
                style_message="err_message";
                this.login="";
                this.password="";
     
                return "invalid";
     
     
            }
     
        }
    comment puis-je afficher message dans mes pages jsp ??
    dois-je faire : FacesContext.add(message); et ou??

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    En cas d'erreur dans la validation, tu peux renvoyer null, ca suffit.
    C'est avant de retourner null que tu dois ajouter le message dans le contexte Jsf.

    Exemple dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    else {
      message=" Echec de connexion ,veuillez vérifier votre login et mot de   passe!";
      style_message="err_message";
      this.login="";
      this.password="";
      FacesContext.getCurrentInstance().addMessage(null, new   FacesMessage(message));
      return null;
    }
    Pour afficher le message dans ta jsp, comme dit plus haut, utilise le tag <h:messages /> ou <h:message /> si le message est lié à un composant.

    Dans mon exemple de code, le 1er argument de la méthode addMessage(..) représente le composant. On le valorise à null si on ne souhaite rattacher le message à aucun composant en particulier. En l'occurrence, c'est ce que j'ai fait.
    Ils flottent tous en bas

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    merci pour votre réponse mais j'ai une autre question svp
    je veux faire un validator personnalisé pour mon inputText nom mais ceci n'as pas marché convenablement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void validateN(FacesContext context, UIComponent component,
           Object value) throws ValidatorException {
              Pattern p = Pattern.compile("[a-zA-Z]+//s+");
     
     
               Matcher m = p.matcher((String)value);
               boolean matchFound = m.matches();
     
              if (!matchFound)
                throw new ValidatorException(new FacesMessage(
                    FacesMessage.SEVERITY_ERROR, "nom ou prénom invalid",
                        "nom ou prénom invalid "));
    }
    et précisement le "Pattern" j'ai pas compri la sytaxe de Pattern.compile(????);

    je veux en faite que le nom n'accepte que les caractères alphabétiques
    et merci d'avance

  9. #9
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Si tu veux éviter de te prendre la tête avec les expressions régulières, tu peux utiliser StringUtils d'Apache Commons Lang, avec la méthode isAlpha().
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    merci mais nn je veux trouver la syntaxe correcte de la variable String de compile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Pattern p = Pattern.compile("[a-zA-Z]+//s+");

Discussions similaires

  1. Les rôles avec JSF
    Par btssouma dans le forum JSF
    Réponses: 4
    Dernier message: 10/10/2012, 08h32
  2. [Toutes versions] Les messages avec Access
    Par naphta dans le forum Sondages et Débats
    Réponses: 11
    Dernier message: 28/02/2012, 14h02
  3. utiliser les annotations avec JSF 2.0
    Par apiflo dans le forum JSF
    Réponses: 2
    Dernier message: 28/04/2010, 15h11
  4. Filtrer les messages avec Log4j
    Par devfd0 dans le forum Logging
    Réponses: 4
    Dernier message: 30/08/2007, 19h46

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