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 avec selectManyListbox


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut Problème avec selectManyListbox
    Salut,
    Mon idée c'est de récuperer les noms des fichiers dans une répertoire puis je l'affiche dans une selectManyListbox ( JSF ).Alors je créer dans mon bean (signature):
    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
     
    private List options;
     
            public void setOptions(List options) {
            this.options = options;
            }
     
            public List getOptions() {
            return options;
            }
           public Sigbean(){        
            }
     
        	public void FilesActives() {
            options = new ArrayList();
            SelectItem option = new SelectItem();
            String directoryPath="//etc//snort//rules//";
            File directory = new File(directoryPath);
    		File[] subfiles = directory.listFiles();
    			for(int i=0 ; i<subfiles.length; i++){
                    option = new SelectItem( subfiles[i].getName());
                    options.add(option);
    			}
            }
    et dans la page JSF:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <h:selectManyListbox id="listbox1" value="#{signature.options}" size="3" style="height: 216px; left: 120px; top: 168px; position: absolute">
                  <f:selectItems value="#{signature.options}" />
                </h:selectManyListbox>
    Mais il m'affiche l'erreur suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception Details:  java.lang.IllegalArgumentException
      Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectMany(listbox1). Found null.
    Svp y a-t-il une proposition??
    Merci d'avance.

  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
    Il faut tout simplement lire la documentation du composant..
    selectItems prend en valeur une liste d'objet SelectItem.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut
    Salut,
    Oui bien sûr mais il s'agit d'une table de Selectitemes ( options ), pour plus d'info je suivie cette documentation; http://www.roseindia.net/jsf/selectItems.shtml

  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 la valeur du select prend la valeur d'une liste d'objets définis dans le SelectItem, une liste de String dans ton cas.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Par défaut
    Je rejoins Sniper37 :

    La balise <f:selectItems/> doit être bindé à une liste (donc c'est correcte). Elle définit le contenu dans ta combo box.

    Par contre, la balise <h:selectManyListbox> doit être liée à un attribut de ton managed Bean. Cet attribut prendra la valeur qui a été sélectionnée dans ta combo box. D'après ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    option = new SelectItem( subfiles[i].getName());
    ton attribut sera de type String.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Par défaut
    Il faut tout simplement lire la documentation du composant..
    selectItems prend en valeur une liste d'objet SelectItem.
    D'ailleurs Sniper37, où peut-on trouver la documentation du composant? J'avoue avoir bien galéré au début sur l'utilisation des différents composants JSF.

  7. #7
    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 meilleur c'est la source, documentation de Sun, sinon ton ami google te donnera pas mal de liens, comme celui .

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut
    Resalut,
    Voila, je fais comme tu me dis
    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
     
     private List<SelectItem> optionItems;
             private List<String> optionSelected;
     
           public List<SelectItem> FileActive(){
    		List<SelectItem> optionList = new ArrayList<SelectItem>();
     
    		String directoryPath="//etc//snort//rules//";
            File directory = new File(directoryPath);
    		File[] subfiles = directory.listFiles();
    			for(int i=0 ; i<subfiles.length; i++){
                    optionList.add(new SelectItem(subfiles[i].getName()));
    			}
            return optionList;
           }
    et pour le JSF:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:selectManyListbox id="listbox1" value="#{signature.optionSelected}" size="3" style="height: 216px; left: 120px; top: 168px; position: absolute">
                <f:selectItems value="#{signature.optionItems}" />
                </h:selectManyListbox>
    mais le mm erreur tjrs!!

  9. #9
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Salut saif_24
    essayer de initialiser votre liste "options" dans le constructeur
    bonne chance

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ton champ n'est pas initialisé. Donc il vaut null, donc jsf rale

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut
    Salut totoz,
    de même!! j'arrive pas à résoudre cette probléme!!
    Merci

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    affiche tout ton bean, là pour ce code que tu as montré, rien ne montre que ton champ est initialisé correctement.

  13. #13
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Salut
    effectivement je rejoint tchize_ montre tout ton bean comme ça on peut détecter d'où vient l'erreur
    bonne chance

  14. #14
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    salut
    le code que t'as mis dans la methode FileActive() il faut le mettre dans le getter de optionItems comme ça t' es sur que ta liste est bien initialisée
    essaye ça et j'attends votre retour
    bonne chance

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut
    ok! c mon bean:
    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
    35
    36
    37
     
    public class  Sigbean{
     
       private List<SelectItem> optionItems;
       private List<String> optionSelected;
     
     
        public List<SelectItem> getOptionItems() {
            return optionItems;
        }
     
        public List<String> getOptionSelected() {
            return optionSelected;
        }
     
        public void setOptionItems(List<SelectItem> optionItems) {
            this.optionItems = optionItems;
        }
     
        public void setOptionSelected(List<String> optionSelected) {
            this.optionSelected = optionSelected;
        }
     
     
     
           public List<SelectItem> FileActive(){
    		List<SelectItem> optionList = new ArrayList<SelectItem>();
     
    		String directoryPath="//etc//snort//rules//";
            File directory = new File(directoryPath);
    		File[] subfiles = directory.listFiles();
    			for(int i=0 ; i<subfiles.length; i++){
                    optionList.add(new SelectItem(subfiles[i].getName()));
    			}
            return optionList;
           }
    }

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut
    Merciiiiii bcp totz! ca marche si je le met dans getOptionItems() !

  17. #17
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    salut saif_24 merci pour votre retour
    je confirme ma réponse précédente votre optionItems n'est pas du tout initialisée donc c'est normal que ça marche pas .il faut l'initialiser on mettant le code de FileActive() dans le getter de optionItems ou de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setOptionItems(optionList);
    dans votre méthode FileActive() à condition d'appeler cette méthode avant l'affichage de votre liste pour qu'elle soit initialisée
    j'espère que ma réponse est claire .
    bonne chance

  18. #18
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    salut saif_24
    pardon je poste mon msg en retard mais je suis très heureux pour toi
    n'oublier pas la tag resolu
    bonne chance

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut
    Merci totz!

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

Discussions similaires

  1. problème avec h:selectManyListbox et selectItems
    Par riadhhwajdii dans le forum JSF
    Réponses: 2
    Dernier message: 07/07/2009, 08h56
  2. Problème avec selectManyListbox
    Par ng.phung dans le forum JSF
    Réponses: 2
    Dernier message: 17/07/2008, 10h44
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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