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 :

Contourner la validation d'un formulaire


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut Contourner la validation d'un formulaire
    Bonjour à tous,

    Je vous expose mon problème.
    Mon site comporte une page de connexion à une base de donnée.

    La partie de la page concernant mon problème est composée de deux panels :
    - Le premier permet de choisir la base de données sur laquelle se connecter via un combo-box. Ainsi qu'un bouton "Change database" qui rafraîchit les deux panels.
    Le bouton appelle une fonction vide, le rafraîchissement se fait via l'update.

    - Le deuxième panel comporte un formulaire permettant de se connecter à la base de données sélectionnée.

    Mon premier problème était que lorsque je voulais changer de BD, je cliquais sur le bouton "Change database" pour actualiser mon formulaire, mais les champs du formulaire étant tous "required", le changement ne se faisait pas.
    Je devais alors remplir tous mes champs avant de changer de BD.

    J'ai contourné ce problème en ajoutant un " immediate='true' " à mon bouton. Seulement l'ajout de cet attribut rend mon bouton en quelque sorte inactif.
    Je n'arrive plus à changer de BD. Cependant j'arrive toujours à me connecter à celle sélectionnée par défaut.

    Je peux vous fournir mon code si vous jugez cela utile ou plus parlant.
    Merci d'avoir pris le temps de me lire.
    Bonne journée,
    Vlaadz.

  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
    Par défaut
    Bonjour,
    premièrement regarde la , il me semble que la question y est traitée, sinon avec un peu de :recherche: tu trouvera d'anciens posts similaires.
    Enfin tu as toujours le problème, tu peux poster un bout de code pour faciliter la réponse.

  3. #3
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut
    Bonjour Sniper37,

    J'avais jeté un oeil à la FAQ et la question y est en effet traitée, mais c'est essentiellement l'utilité de l'attribut immediate qui y est abordée.
    Cependant, j'ai était pris d'un doute en relisant cette phrase :
    Il faut ajouter l'attribut immediate="true" au niveau du bouton et au niveau du champ conditionnant l'affichage du champ tier.
    J'ai donc ajouté des immediate sur tous les champs de mon formulaire mais en vain : le remplissage des champs est toujours obligatoire et le changement de BD ne fonctionne plus.


    Mes recherches sur le forum ont surtout abouti sur des posts où les membres n'utilisaient pas l'attribut immediate, et dans leurs cas, l'ajout de celui-ci à résolu leur problème.
    Si je suis passé à côté d'un post traitant mon problème, j'en suis désolé.

    Je vous rajoute mon code pour plus de lisibilité.
    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
     
                        <!-- DB selection -->
                        <p:panel id="selectDB" header="DB Selection" style="margin-bottom:10px;">  
     
                            <p:selectOneMenu value="#{ConnectionBean.msDatabase}" style="margin-top: 1%">
                                    <f:selectItem itemLabel="Oracle" itemValue="Oracle" />  
                                    <f:selectItem itemLabel="SQL Server" itemValue="SQL Server" />  
                                </p:selectOneMenu>
                            <p:commandButton value="Change DB" update="selectDB,form" action="#{ConnectionBean.changeDB()}" immediate="true" style="margin-left: 67%"/>
     
                        </p:panel>
                        <!-- End DB selection -->
     
     
                        <!-- Connection form -->
                        <p:panel id="form" header="Connection to #{ConnectionBean.msDatabase}" style="margin-bottom:10px ;">  
     
                            <h:panelGrid columns="2">  
     
                                <h:outputLabel for="Host" value="Host : *" />  
                                <p:inputText id="Host" value="#{ConnectionBean.msHost}" required="true" label="Host">  
                                    <f:validateLength minimum="2" />  
                                </p:inputText>   
     
                                <h:outputLabel for="User" value="User : *" />  
                                <p:inputText id="User" value="#{ConnectionBean.msUser}" required="true" label="User"/>  
     
                                <h:outputLabel for="Password" value="Password : *" />  
                                <p:password id="Password" minLength="3" value="#{ConnectionBean.msPassword}" feedback="false" label="Password" required="true"/> 
     
                            </h:panelGrid>
     
                        </p:panel>  
                        <!-- END connection form -->
    J'ai supprimé certains champs du formulaire pour ne pas surcharger mon post.

    Merci d'avance et bonne journée.
    Cordialement,
    Vlaadz.

  4. #4
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Par défaut
    Bonjour,

    J'ai remarqué qu'il n'était pas nécessaire d'appeler une fonction avec mon bouton "Change Database". J'ai donc supprimé l'appel à la fonction "changeDB".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:commandButton value="Change DB" update="selectDB,form" immediate="true" style="margin-left: 67%"/>
    C'est plus propre, mais il n'y a aucune amélioration.
    Vlaadz.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Bonjour Vlaadz,

    Pourquoi utilises-tu un bouton pour changer de base de données, si la méthode implémentée est vide ?

    Le choix de la base de données sera pris en compte lors de la validation du formulaire.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/04/2006, 09h42
  2. Javascript : Empecher la validation d'un formulaire
    Par otb82 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/01/2006, 09h46
  3. Ouvrir une popup lors de la validation d'un formulaire
    Par pod1978 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/11/2005, 15h47
  4. Vérification de validation d'un formulaire
    Par tom06440 dans le forum Langage
    Réponses: 8
    Dernier message: 21/09/2005, 14h29
  5. Réponses: 11
    Dernier message: 16/09/2004, 11h39

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