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 :

[JSF] Validator - Comparaison


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 201
    Par défaut [JSF] Validator - Comparaison
    Bonjour à tous,

    Encore un autre problème !

    Sur le formulaire de création d'un utilisateur, j'ai les deux champs suivants :
    * mot de passe
    * vérification du mot de passe

    J'ai créé un fonction de validation dans mon "backing bean" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void validatePasswordVerification(FacesContext context, UIComponent component, Object value);
    J'ai mis cette validation sur le champs passwordVerification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputSecret id="passwordVerification" value="#{userBean.passwordVerification}" required="true" requiredMessage="#{bundle.PASSWORD_VERIFICATION_REQUIRED}" validator="#{userBean.validatePasswordVerification}">
    Dans la méthode de validation de mon "backing bean", j'arrive a récupérer la valeur du champs passwordVerification grâce au paramètre de type object envoyé a la fonction validatePasswordVerification. Mais comment la comparer a la valeur du champs password ? (Dans la méthode de validation la variable associé au champs password est toujours NULL)

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Il faut le récupérer directement sur l'autre composant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    component.findComponent("idDelAutreChampPassword").getValue()

    Note: la librairie tomahawk fourni un validator qui vérifie que un champ est bien égal à un autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h:inputText id="field1"
                    value="#{validateForm.equal}"
                    required="true"/>
    <h:inputText id="field2"
                    value="#{validateForm.equal2}"
                    required="true">
        <t:validateEqual for="field1" />
    </h:inputText>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 201
    Par défaut
    Ou je sais.

    Mais je crée tout mes validateurs dans le backing bean pour pouvoir personnaliser le message d'erreur.

    Je sais qu'il est possible de la faire grâce au fichier bundle, mais ce message sera la même pour chaque validation. Comme par exemple "champs requis", mais moi je préfère "Veuillez entrer votre nom d'utilisateur", ...

    Merci pour la réponse.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 201
    Par défaut
    J'ai tester ta réponse.

    Voici le code de ma méthode de validation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public void validatePasswordVerification(FacesContext context, UIComponent component, Object value)
        {
    	HtmlInputSecret c = (HtmlInputSecret)component.findComponent("passwordVerification");
     
    	if(c == null)
    	    System.out.println("NULL");
    	else
    	    System.out.println(c.getValue());
        }
    Le système m'affiche NULL. Je ne sais donc pas récupéré la valeur de champs "Vérification du mot de passe".

    PS : j'utilise RichFaces, la validation se fait sur l'evenement "onblur" du champs.

  5. #5
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Pour trouver ton composant, tu dois lui donner son ID complet, c'est-à-dire dans ton cas idForm:passwordVerification.
    En effet, ton composant (d'id passwordVerification) est contenu dans un NamingContainer, à savoir le formulaire. Du coup, son ID réel est l'id du form (que j'ai nommé idForm) concatené (et séparé par pas sa propre ID. Ce qui donne le idForm:passwordVerification.
    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

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 201
    Par défaut
    Je viens de tester, j'ai exactement le même resultat : NULL.

    PS : n'oubliez pas que j'utilise RichFaces et que la validation se fait sur l'événement "onblur" du champs "passwordVerification".

Discussions similaires

  1. JSF validator, null problem, second round
    Par Bobble dans le forum JSF
    Réponses: 21
    Dernier message: 26/07/2010, 15h50
  2. JSF validator, null problem
    Par Bobble dans le forum JSF
    Réponses: 7
    Dernier message: 15/07/2010, 11h36
  3. Javascript et Jsf (Validation formulaire)
    Par midos_ab dans le forum JSF
    Réponses: 3
    Dernier message: 01/07/2010, 11h40
  4. [Validator] comparaison de dates
    Par jeb001 dans le forum Struts 1
    Réponses: 0
    Dernier message: 05/08/2008, 10h58
  5. Validation, comparaison date
    Par kalurar dans le forum Struts 2
    Réponses: 6
    Dernier message: 14/08/2007, 17h14

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