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 :

Controle des deux champs d'une JSF


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 21
    Points
    21
    Par défaut Controle des deux champs d'une JSF
    Bonjour,

    Un problème classique mais dont je ne trouve pas de réponse.

    Le voici : un bête login mot de passe.

    J'ai deux champs input dans une JSF et je voudrais dans validate pouvoir contrôler la cohérence login + mot de passe. j'arrive à faire un validate sur le login, un validate sur le mot de passe mais je voudrais faire un validate pour la paire login+mot de passe.

    voici ma JSF :

    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
                <h:form>
                        <h:messages/>
                        <table border="1" >
                            <tr>
                                <td>
                                    <h:outputLabel value="Profil" for="profil"/>
                                </td>
                                <td>
                                    <h:inputText value="#{connexionBean.profil}" required="true" id="profil"
                                                 validator="#{validationBean.profil}"/>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <h:outputLabel value="mot de passe" for="password"/>
                                </td>
                                <td>
                                    <h:inputText value="#{connexionBean.password}" required="true" id="password"/>
                                </td>
                            </tr>
                        </table>
                        <h:commandButton value="ValideConnexion" action="goToRegister"/>
                    </h:form>
    Comment faire pour que ma classe de validation validationBean.profil récupère les 2 champs ?

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    tu peux t'inspirer de ce post.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Il y a un problème sur ce post : la page 2 n'est pas la bonne.
    La page 1 pose le même problème que le mien et quand on click sur la page 2 on arrive sur un autre problème.

    As-tu un moyen de voir les autres pages de ce post?

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Désolé je reprends ma réponse :

    Dans ma classe de validation, je récupère mon premier champs avec "Object value" puis le deuxième champs avec
    "FacesContext context = FacesContext.getCurrentInstance();
    UIInput input =(UIInput)context.getViewRoot().findComponent("component_id");"

    C'est ça?

    Je fais un test cet après midi.

    Merci

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Il doit me manquer une information :

    Voici la jsf :
    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
     <h:messages/>
                        <table border="1" >
                            <tr>
                                <td>
                                    <h:outputLabel value="Profil" for="profil"/>
                                </td>
                                <td>
                                    <h:inputText value="#{connexionBean.profil}" required="true" id="profil"
                                                 validator="#{validationBean.validatePass}"/>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <h:outputLabel value="mot de passe" for="password"/>
                                </td>
                                <td>
                                    <h:inputText value="#{connexionBean.password}" required="true" id="password"
                                                 validator="#{validationBean.validatePass}"/>
                                </td>
                            </tr>
                        </table>

    et le validateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class validationBean {
     
     
        public void validatePass(FacesContext facesContext, UIComponent toValidate, Object value) {
           String strValue = (String) value;
            System.out.println(strValue);
            System.out.println("validation ok");
            FacesContext context = FacesContext.getCurrentInstance();
            UIInput input =(UIInput)context.getViewRoot().findComponent("profil");
            System.out.println(input);
        }
    }
    mais le résultat donne null

  6. #6
    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
    Points : 7 275
    Points
    7 275
    Par défaut
    Un composant doit se retrouver avec son ID complet. Autrement dit, préfixé par le formulaire ID :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h:form id="formulaire">
        <h:inputText id="champ" .../>

    L'id complet de l'input est formulaire:champ.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Ah c'est mieux j'obtiens ça :
    "INFO: validation ok
    INFO: javax.faces.component.html.HtmlInputText@544daf24"

    reste a transformer cette valeur pour qu'elle soit lisible.

    une idée?

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Bon n'arrivant pas à récupérer les informations des deux champs de ma jsp dans mon validator, je vais essayer d'une autre manière.
    Je clos le sujet et merci pour votre aide.

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

Discussions similaires

  1. Comment concatener deux champs d'une table d'une BDD.
    Par LESOLEIL dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/05/2006, 10h48
  2. somme de deux champs d'une requete
    Par decour dans le forum Access
    Réponses: 2
    Dernier message: 22/03/2006, 09h43
  3. [MySQL] Liste déroulante contenant deux champs d'une requete
    Par budiste dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/10/2005, 11h21
  4. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 15h36
  5. contrainte sur deux champs d'une table
    Par bdkiller dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/09/2004, 18h26

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