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 :

Remplir un selectOneMenu à partir d'une BD


Sujet :

JSF Java

  1. #1
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut Remplir un selectOneMenu à partir d'une BD
    Bonjour,

    j'ai une liste déroulante que je veux remplir via une requête HQL .est ce que quelqu'un a une idée là dessus,merci

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Il faut que tu relie ton selectOneMenu à une propriété List de ton Bean. Il faut ensuite que tu ensuite que tu remplisse cette propriété avec les éléments retourné par ta requête.
    Si tu n'y arrive pas montre nous ton code et dis nous quelle est la partie qui te bloque.

  3. #3
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    voilà la méthode qui retourne uneliste d'enregistrement :


    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
     
    public List getmaliste()
        {
            List unelist = new ArrayList();
     
            try { 
                org.hibernate.Session session = HibernateUtil.currentSession();
                //org.hibernate.Transaction tx = session.beginTransaction();
                org.hibernate.Query q = session.createQuery("from Matable");
                unelist= q.list();
                //session.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
     
            return unelist;
        }



    et pour la liste déroulante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <h:selectOneMenu id="MonMenu" value="#{bean.maliste}" >
     
        </h:selectOneMenu>

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    D'après ton code il faudrait que tu ai plutôt ça
    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
     
    public List<SelectItem> getMaliste()
        {
            List<SelectItem> unelist = new ArrayList <SelectItem>();
     
            try { 
                org.hibernate.Session session = HibernateUtil.currentSession();
                //org.hibernate.Transaction tx = session.beginTransaction();
                org.hibernate.Query q = session.createQuery("from Matable");
                Iterator it = q.list().iterator();
                while (it.hasNext()){
                            Matable elementCourant = it.next();
                            unelist.add(new SelectItem(elementCourant.getAttributCle(), elementCourant.getAttributValeur());
                //session.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
     
            return unelist;
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:selectOneMenu id="MonMenu" value="#{bean.valeurDeLaListe}" >
        <f:selectItems value="#{bean.maliste}" />
    </h:selectOneMenu>
    Il faudra que tu ai dans ta classe un attribut valeurDeLaListe avec ces getter et setter qui prendra comme valeur la clé du SelectItem choisit dans la liste.

  5. #5
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    Merci pour votre réponse,

    mais j'ai compris la ligne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Matable elementCourant = it.next();
    c quoi le type de la variable MAtable

    aussi pour la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      List<SelectItem> unelist = new ArrayList()<SelectItem>;
    j'ai une erreur :
    < cannot be applied to java.util.arraylist,selectitem

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Matable elementCourant = it.next();
    d'après le code que tu as écris tu fais une requête hibernate sur un type d'objet maTable (que du doit normalement avoir mappé) donc la liste de résultat retournée est composée d'élément du type maTable.

    Il y as une erreur dans mon code la bonne syntaxe est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<SelectItem> unelist = new ArrayList <SelectItem> ();
    j'édite mon message précédent.

  7. #7
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    J'ai toujours des problèmes,

    pour la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Mtable elementCourant = it.next();
    j'ai l'erreur suivant :Incompatible types

    et pour la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     unelist.add(new SelectItem(elementCourant.getAttributCle()),elementCourant.getAttributValeur());
    j'ai pas compris quelles sont les deux paramètres de SELECTItem


    merci

  8. #8
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Pour ce qui est de ta première erreur il faut que tu caste le retour de ton iterateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Matable elementCourant = (Matable )it.next();
    pour ce qui est du SelectItem je te renvoi vers la documentation

  9. #9
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    Dans mon cas je veux avoir la colonne des clés primaires des enregistrement de ma table,


    puisque "code" est la clé primaire j'ai mis


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    unelist.add(new SelectItem(elementCourant.getCode()),elementCourant.getCode())
    mais toujours l'erreur

    cannot find symbol
    symbol:method add

  10. #10
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    C'est juste un problème de parenthésage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unelist.add(new SelectItem(elementCourant.getCode(),elementCourant.getCode()))

  11. #11
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    Oui ça marchait,merci infiniment guigui5931

  12. #12
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    En faite j'ai réussi à remplir la liste,mais le problème est que je dois choisir une valeur et l'ajouter à une autre table que la table "matable"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:selectOneMenu id="MonMenu" value="#{matable.code}"  style="width:100%">
                  <f:selectItems value="#{matable.uneliste}" />
                  </h:selectOneMenu>
    normalement la valeur value du composant qui va me permettre de spécifier la table ou je vais mettre la valeur choisie,mais puisque value et j'ai déja utilisé ,donc comment je peux récupérer la valeur choisie et l'insérée dans une autre table.

  13. #13
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Je ne comprend pas trop ce que tu veux faire mais si tu veux utiliser la valeur choisit dans la liste elle se trouve dans l'attribut code.

  14. #14
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    Je veux utiliser la valeur choisie dans la liste dans un autre Bean autre que celui ou se trouve l'attribut code

  15. #15
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    Je crois que j'ai pas bien expliqué mon problème,voilà :

    D'abord je sais que la valeur choisie se trouve dans l'attribut code qui se trouve avec ses getters et setters dans un le Bean appelé matableBean,donc moi j'ai besoin d'utilisé la valeur choisie dans un autre bean appelé MonBean .

  16. #16
    Membre confirmé Avatar de jdev23
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    Merci énormément guigui5931 ,c bon le problème est résolu

  17. #17
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Dans ce cas tu peux regarder autour du tag updateActionListener qui sert à faire passer des valeurs d'un bean à un autre.

    EDIT : tant mieux alors

  18. #18
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    bonjour, j'essaie aussi de remplir un selectOnemenu à partir de ma BD -la même chose que ce topic-. j'ai un peu suivi ce qui a été posté ici, sauf que j'ai 2 pb au tout début pour créer ma fonction dans 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
    public List<SelectItem> getMaliste(){
    	List<SelectItem> unelist = new ArrayList <SelectItem>();
    	try{
    		Session session=utils.HibernateSessionFactory.getSession();
    		Query q = session.createQuery("from Restaurant");
    		Iterator it = (Iterator)q.list().iterator();
    		while (it.hasNext()){
    			Restaurant elementCourant = (Restaurant)it.next();
    			unelist.add(new SelectItem(elementCourant.getCodeResto(), elementCourant.getLibelleResto()));
    		}			
    	}catch (Exception e) {
             e.printStackTrace();
            }
    		return unelist;
    	}
    sauf ke g 2 erreur au niveau des lignes en rouge :
    - déjà la méthode hasNext n'est pas reconnu, g pense que c'est un pb de biblio. pr iterator la biblio importé est : import javax.swing.text.html.HTMLDocument.Iterator;
    - même avec le cast pour le it g l'erreur : cannot cast from void to Restaurant

    merci bcp

  19. #19
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    non le Iterator à importer est java.util.Iterator;

    Cependant si tu veux continuer cette discussion ouvre un nouveau topic.

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

Discussions similaires

  1. Remplir un selectOneMenu à partir d'une BD MySql
    Par ulysse031 dans le forum JSF
    Réponses: 18
    Dernier message: 16/07/2014, 17h23
  2. remplir un selectOneMenu à partir d'une BD postgres
    Par faon114 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 18/03/2014, 14h17
  3. remplir une liste deroulante (selectOneMenu) à partir d'une base de données
    Par soniyo dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 04/06/2012, 16h51
  4. Remplir jtable a partir d'une base de donnée mysql
    Par chris81 dans le forum Composants
    Réponses: 3
    Dernier message: 26/04/2007, 14h09
  5. [formulaire] remplir un champ à partir d'une liste
    Par mystikgirl30 dans le forum IHM
    Réponses: 4
    Dernier message: 23/04/2007, 11h30

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