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 :

Formulaires dynamique et validation


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut Formulaires dynamique et validation
    Bonjour,

    j'ai une page avec un formulaire dynamique (c'est à dire qu'on peut ajouter ou enlever des sections de formulaires dynamiquement grace à deux boutons "ajouter" et "supprimer"). Pour chaque section du formulaire il y a une checkbox qui sert à séléctionner cette section. Pour voir quel est le principe que j'utilise, il suffit d'aller voir ce que propose olivier Schmitt sur developpez.com dans son tutoriel d'intro à JSF.
    Comme dans mes <h:inputText> j'ai mis un attribut required à true, j'avais une validation lors du clic sur un bouton (supprimer par exemple) et l'action de supprimer une partie du formulaire ne fonctionnait pas tant que tous les champs du formulaire n'étaient pas corrects. J'ai donc ajouté un attribut immediate à true, pour sauter la phase de validation.
    Alors maintenant la validation n'a plus lieu lorsque j'utilise Ajouter ou supprimer, mais par contre les champs du formulaire ne sont plus mis à jour et je n'arrive plus à supprimer des parties. Le checkbox servant à désigner la partie à supprimer n'est pas considérée comme cochée dans mon backing bean.

    Y'a-t-il une solution à ce genre de problème ?
    J'ai pensé à faire mes vérification non pas avec les validators (standard ou maison) mais en utilisant une méthode présente dans le backing bean, ça se fait ça ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    si je ne me trompe place l'attribut disabled=true sur ce que tu ne veux voir valider.

    Et pour jouer à ca, il faut bien s'accrocher au niveau du life cycle des requetes.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Merci de ta réponse

    En utilisant cet attribut, on désactive le component. C'est à dire qu'il n'est plus actif dans le rendu de la vue, et donc incapable de fournir une valeur au backing bean.

    J'ai essayé quand même, mais ça ne fonctionne pas.

    Aurais-tu des docs interessants à propos de JSF ? Les tutos qu'on trouve sont assez "légers" je trouve. Pas beaucoup d'exemples, et on retombe toujours sur les mêmes.

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    à mon avis, tu ne dois pas mettre l'attribut immediate à true sur tes boutons de façon à persister les valeurs dans ton bean.
    L'attribut required de tes inputText peut être bindé vers une méthode de ton bean du style isRequired().
    Tu pourrais mettre un valueChangeListener sur tes checkbox pour détecter tout changement de valeur et ainsi modifier la valeur retournée par ta méthode isRequired().
    <h:selectBooleanCheckbox valueChangeListener="#{monBean.changementValue}" immediate="true"></h:selectBooleanCheckbox>
    L'astuce est de mettre l'attribut immediate à true de façon à être notifié tout de suite du changement de valeur, sinon, la méthode isRequired() sera appelée avant que tu saches qu'il y ait eu un changement...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Ok, j'étudie ta proposition.
    Je débute donc il faut que je m'y retrouve là-dedans.
    Merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Salut,

    je ne vois pas bien ce que tu veux dire par binder l'attribut required avec une méthode isRequired de mon backing bean.

    Pour l'instant j'ai ajouté une méthode processValueChange à mon backing bean. Elle est référencée auprès de ma checkbox, l'attribut immediate est à true sur cette checkbox. Donc lors du submit (un quelconque bouton) cette méthode processValueChange est appelée avant le processus de validation des autres input de ma page. C'est ça ?

    Mais après ?

    Mon problème c'est que je n'arrive pas, lors du clic sur supprimer par exemple, à savoir quelles sont les checkbox selectionnées.

    EDIT : je m'attendais à ce que ma méthode processValueChange soit appelée lorsque je coche ou décoche une checkbox, ce n'est pas le cas.
    C'est possible de faire ça ?

Discussions similaires

  1. Validation d'un formulaire dynamique
    Par Snyper dans le forum Struts 1
    Réponses: 1
    Dernier message: 18/04/2009, 15h52
  2. Reconstruire menu dynamique apres validation formulaire
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/11/2007, 10h34
  3. Validation formulaire dynamique
    Par touriste44 dans le forum Struts 1
    Réponses: 6
    Dernier message: 02/11/2005, 12h10
  4. Validation formulaire dynamique
    Par odelayen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/08/2005, 17h47
  5. [struts]Formulaire dynamique
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/05/2004, 16h35

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