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 :

Choix en cascade


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut Choix en cascade
    Salut tout le monde,

    j'ai besoin de faire un choix en cascade en JSF, et je cherche une façon propre de le faire. Je m'explique.
    Quand l'utilisateur arrivera sur une page, il devra choisir quelque chose dans un select (un selectOneListbox en JSF). Quand il validera ce choix, cela nous renverra vers la meme page, dans laquelle un 2e choix devra apparaitre. Le contenu du second choix depend de ce que l'on a choisit dans le premier choix. La validation du second choix entrainera l'apparition d'un 3e, et ainsi de suite... La profondeur du choix sera variable selon les choix successifs de l'utilisateur, et c'est ce qui rend la chose plus complexe à mon avis (si le nombre de choix était fixe, je n'aurais qu'à afficher le nombre de selectOneListBox adéquat, et à modifier leur contenu au fur et à mesure...
    Je ne vois pas bien comment realiser ceci "proprement" avec JSF (en fait j'ai délà une version servlet/jsp qui marche mais qui est un peu sale...)

    Merci bcp,
    Phil

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut Rendered
    Utilise l'attribut rendered dans ta jsp pour afficher ou non ta liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <h:selectOneMenu value="#{maListe.ville}" 
       onchange="submit()"  
       immediate="true" rendered="#{maListe.villeaffiche}" >
    	<f:selectItems value="#{maListe.villeliste}" />
    </h:selectOneMenu>


    Et dans mon bean j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    public boolean isVilleaffiche() {
      return (flagville);
    }

    Voili voilou, ca devrai régler ton problème

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Salut et merci,

    je connais l'attribut rendered, mais je ne pense pas que cela règle mon problème. Le nombre de choix successifs est variable et je n'ai pas de nombre de choix maximum, je ne peux donc pas prévoir le nombre de selectOneMenu à l'avance.

    Si j'avais eu disons au maximum 5 choix à faire, j'aurais mis 5 tags selectOneMenu dans ma JSP et j'aurais comme tu le dis joué avec leurs attributs rendered au fur et à mesure des actions de l'utilisateur.

    Mais là je n'ai pas de moyen de prévoir le nombre maximum de choix...
    C'est là qu'est la difficulté je pense...

    Phil

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    Crée des SelectOneMenu "programmatiquement"

    Tu peux par exemple mettre un valueChangeListener sur ton 1er selectOneMenu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void action(ValueChangeEvent e){
    UIComponent parentComponent = e.getComponent.getParent;
    UISelectOne select = new UISelectOne();
    parentComponent.getChildren().add(select)
     
    }
    Et hop tu as un nouveau selectOneMenu qui apparait sur ta page.
    Donc en gros voila l'idée. tu peux aussi utiliser un binding au lieu de passer par le valueChangeEvent.

  5. #5
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Merci beaucoup, c'est exactement ce que je voulais. Reste maintenant à appelé des web services à chaque fois qu'un choix est fait pour déterminer le prochain choix... Mais ça je sais faire!
    Merci,
    Phil

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Bon en fait j'ai encore une petite question : je suis arrivé à faire ce que je voulais faire mais il reste un petit détail que j'aimerais règler.

    Je voudrais que les choix précédents (pas celui en cours bien sur) soient "disabled", mais je n'arrive pas à le faire. J'arrive à jouer avec le rendered, mais pas avec le "disabled"...

    Dans une JSP c'est facile, mais "programmatiquement", je vois pas...
    Une idée?

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    il faut que tu utilise HTMLSelectOne à la place de UISelect pour pouvoir utiliser disable

  8. #8
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Nickel, merci!

Discussions similaires

  1. Listes à choix multiples en cascade
    Par simjen dans le forum VBA Access
    Réponses: 0
    Dernier message: 02/02/2015, 18h46
  2. [AC-2013] Listes à choix multiples en cascade / Code SQL
    Par Maair dans le forum IHM
    Réponses: 5
    Dernier message: 05/01/2015, 18h24
  3. [MySQL] Formulaire cascade choix de ville en fonction du code postal
    Par david2511 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 04/03/2010, 09h06
  4. Récupération choix sous menu cascade
    Par Viduc dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 20/07/2009, 19h21
  5. Choix d'un ORB
    Par Anonymous dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 11h15

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