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 :

Problème JSTL en combinaison avec JSF


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 12
    Points
    12
    Par défaut Problème JSTL en combinaison avec JSF
    Bonjour,

    Je suis nouveau sur le forum et en JSF alors je viens vous demander de l'aide pour un petit problème que je rencontre :
    J'affiche sur ma page web plusieurs combobox selon le choix de l'utilisateur en amont. En effet, lorsque celui-ci sélectionne tel ou tel menu, on va afficher tel ou tel combobox avec un nombre de combobox différent. Tout se fait dans une requête Ajax gérée par JSF.
    Le problème, c'est que je désire stocker les informations données par ces combobox dans une variable de mon Managed Bean (pour ensuite les mettre dans ma base de données). Or vu que je ne connais pas d'avance le nombre de combobox je me retrouves coincé...

    Voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <c:forEach var="nombreExercices" items="#{niveauBean.exercicesPourNiveau}">
                        #{messages['niveau.exercices']} : 
                        <h:selectOneMenu value="#{niveauBean.typeExercice}">
                            <c:forEach var="exercice" items="${nombreExercices}">
                                <f:selectItem itemLabel="${exercice.libelleExercice}" itemValue="${exercice.libelleExercice}"/>
                            </c:forEach>
                        </h:selectOneMenu>
    </c:forEach>
    Est ce que quelqu'un a une solution ?

    Merci d'avance !

  2. #2
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Points : 955
    Points
    955
    Par défaut
    si niveauBean est un bean alors tu trouveras la valeur de ton combobox choisie dans :
    niveauBean.typeExercice
    Ce qu'on appelons le hasard n'est que notre incapacité à comprendre un degré d'ordre supérieur.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Tout d'abord merci pour ta réponse.

    Ensuite je pense que tu as mal lu ma question... Je sais évidemment que la valeur de ma combobox se retrouvera dans l'attribut que je lui ait demandé mais ce n'est pas là le problème. Le problème est que le forEach qu'il y a autour rend le nombre de combobox affiché variable. Et du coup il m'est impossible de récupérer toutes les valeurs de toutes mes combobox !

  4. #4
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Points : 955
    Points
    955
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <ui:repeat value="#{niveauBean.list}" var="x">
     
    <h:selectOneMenu value="#{x.property}">
     </h:selectOneMenu>
     
    </ui:repeat>
    Ce qu'on appelons le hasard n'est que notre incapacité à comprendre un degré d'ordre supérieur.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Merci de ta réponse mais elle ne me convient pas pour plusieurs raisons :
    • D'abord j'ai tenté de remplacer le forEach avec le repeat mais ça ne fonctionne plus. Ca doit être un problème du rendu pendant le cycle JSF. Je suis donc obligé d'utiliser le forEach.
    • Ensuite, j'ai oublié de préciser certaines choses dans mon premier message et je m'en excuse : le niveauBean.exercicePourNiveau ne pointe pas vers un attribut mais vers une fonction qui me renvois donc un résultat différent selon le choix de l'utilisateur en amont (code non visible). En plus, c'est un peu compliqué car cette fonction me renvois un objet de type List<List<TypeExercice>> (d'où les deux forEach) où TypeExercice est un objet qui contient deux attributs de type String. Du coup, ce que tu me proposes ne fonctionne pas puisque je modifierai directement ma variable nombreExercices qui n'est relié à aucun attribut...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    forEach et JSF, ca ne marce vraiment pas bien ensemble.

    Revoyez correctement vos bean.

    Vous devez avoir dedans, un attribut de type List<Exercice>, vous itérez avec les tags jsf approprié (exemple h:dataTable) pour afficher un combobox par Exercice. Et chaque Exercice doit avoir une List<SelectItem> qui sont la liste des valeurs possibles.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Merci pour vos réponses.
    J'ai finalement réussi grâce à vos conseils à résoudre mon problème.
    J'ai d'abord restructurer mon bean comme avait dit tchize afin de supprimer le forEach et le remplacer par un repeat comme l'indiquait anisj1m.
    Puis j'ai eu un flash qui m'a indiqué que mon problème venait également du scope du bean. En effet, j'étais dans un scope request. Malheureusement j'ai l'impression qu'il est impossible de récupérer mes valeurs dans un tel scope. Du coup j'ai mis mon bean en scope view. Ca ne devrait pas poser de problème de mémoire dans mon cas.

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

Discussions similaires

  1. Problème LoginFilter sur /j_security_check avec JSF
    Par Doudou (The) dans le forum JSF
    Réponses: 8
    Dernier message: 22/09/2010, 14h51
  2. Problème de navigation rule avec JSF
    Par anapotheque dans le forum JSF
    Réponses: 6
    Dernier message: 23/07/2010, 12h07
  3. Problème de listener, mémoire avec JSF
    Par curious_31 dans le forum JSF
    Réponses: 0
    Dernier message: 21/06/2010, 15h09
  4. Problème d'url pattern avec JSF+YUI
    Par lion13 dans le forum JSF
    Réponses: 4
    Dernier message: 18/12/2008, 15h24
  5. Problème avec JSF 1.2 + JBoss 4.2.2.GA
    Par sofien dans le forum JSF
    Réponses: 20
    Dernier message: 12/02/2008, 08h51

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