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 :

Comment utiliser UISelectItem (s)


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut Comment utiliser UISelectItem (s)
    Bonjour, j'ai un petit problème.
    J'alimente une dropdownlist avec une List :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public List<SelectItem> recupResp() throws SQLException {
            List<SelectItem> l = new ArrayList<SelectItem>();
     
            l.add(new SelectItem(1, "aaa"));
            l.add(new SelectItem(2, "bbb"));
            l.add(new SelectItem(3, "ccc"));
     
            return l;
        }
    en fait c'est pas 1, "aaa" mais le resultat d'un ResultSet mais bon je simplifie, c'est pas le problème

    ça marche bien (l'appli fonctionne).

    Par contre netbeans refuse d'afficher le design de la jsp (ce qui est très désagréable pour changer le design de ma page) car il me dit que la dropdownlist doit être alimenter avec un UISelectItem s/UISelectItem.
    J'ai essayé de changer mon code mais je ne comprend pas comment fonctionne UISelectItem(s).
    Quelqu'un sait comment changer mon code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public UISelectItems recupResp() throws SQLException {
            UISelectItems l = new ...
     
            ...
     
            return l;
        }
    Merci

  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
    UISelelectItem est l'objet représentant le composant selectItem.
    UISelelectItems est l'objet représentant le composant selectItems.

    le deuxième prend une liste de SelectItem.
    as tu utiliser un à la place de l'autre? peu etre que netbeans prend en charge que l'un des deux.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    D'accord mais concrètement je fais quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public List<UISelectItem> recupResp() throws SQLException {
            List<UISelectItem> l = new ArrayList<UISelectItem>();
     
            UISelectItem nouveau = new UISelectItem();
            nouveau.setItemValue(1);
            nouveau.setItemLabel("aaa");
            l.add(nouveau);
     
            return l;
        }
    ce ne marche pas ...

  4. #4
    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
    et ton code JSP?

  5. #5
    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
    Par défaut
    Il te faut faire ça (ou alors je ne comprends pas ton problème) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
        public List<SelectItem> getRecupResp() throws SQLException {
            List<SelectItem> l = new ArrayList<SelectItem>();
     
            l.add(new SelectItem(1, "aaa"));
            l.add(new SelectItem(2, "bbb"));
            l.add(new SelectItem(3, "ccc"));
     
            return l;
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:selectOneMenu value="#{bean.valeur}">
        <f:selectItems value="#{bean.recupResp}"/>
    </h:selectOneMenu>
    Je ne vois pas l'intérêt d'aller manipuler des UISelectItem(s) directement dans le code Java...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    ah!! merci romaintaz, je fais une erreur dans la jsp :
    moi je mettais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:selectOneMenu>
        <f:selectItems value="#{bean.maListe}"/>
    </h:selectOneMenu>
    {bean.valeur} ça doit être de quel type?

  7. #7
    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
    Par défaut
    Le value du <f:selectItems/> fait référence à une List<SelectItem>, représentant la liste des options sélectionnables par l'utilisateur.
    Chaque SelectItem est un couple (ID, label).

    Le value du <h:selectOneMenu> représente la valeur sélectionnée par l'utilisateur (ou celle par défaut). Il est donc logique que le type de bean.valeur soit le même type que l'ID d'un SelectItem.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:selectOneMenu value="#{bean.valeur}">
        <f:selectItems value="#{bean.liste}"/>
    </h:selectOneMenu>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private Integer valeur; // Ajouter getValeur et setValeur...
    private List<SelectItem> liste = null;
     
    public List<SelectItem> getListe() {
        if (liste == null) {
            liste = new ArrayList<SelectItem>();
            liste.add(new SelectItem(new Integer(...), "le label"));
            ...
        }
        return liste;
    }
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Merci romaintaz.
    en fait moi j'utilisais maDropDownList.getValue() pour obtenir cela sans passer par une variable.

    Mais ca ne change rien à mon problème.

    Je répète que mon appli fonctionne. Le problème n'est pas là.

    Mon problème c'est que quand j'alimente ma dropdownlist avec maListe, netbeans refuse d'afficher le design de ma page. Ce n'est donc pas pratique du tout car je ne peux plus rajouter un bouton par exemple, ou déplacer un champ de manière drag and drop.

    L'erreur (à l'affichage du design de la jsp) est :
    java.lang.IllegalArgumentException: Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(dropdownFM). Found null.

    Je répète qu'à l'execution dans mon browser il n'y a aucune erreur.

  9. #9
    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
    le problème concerne netbeans, s'il y'a un bug dans le designer, tu ne va pas changer ton code pour s'adapter..
    il serait plus judicieux de la poster dans le forum netbeans.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Ouais mais je suis débutant jsf et débutant netbeans du coup quand j'ai un problème je pense plutôt que ça vient de moi et de mon code.
    je suis trop modeste...

    Merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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