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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 38
    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 : 38
    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 : 38
    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.

+ 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