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

Struts 1 Java Discussion :

Charger une combobox a partir d'une base de données


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut Charger une combobox a partir d'une base de données
    bonjour

    jai une vue qui contient un combobox (fournisseur) et je veux le charger depuis ma base de donnée, et le combobox est declaré au niveau du form en tant que String avc le get et set, donc normalement au niveau de l'action ou je fait le chargement, mais je vois pas comment, jai ce code la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    st = con.createStatement();
    rs = st.executeQuery("select DEST_NOM from GSS_DESTINATAIRE where DEST_TYPE ='fournisseur'");	
      while (rs.next())
    	 {     four = rs.getString(1).trim();	}// four est une variable String just pr stocker le resultat de la requette,
    merci de me repondre

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Le sujet a été maintes fois traité sur le forum.
    Tu trouveras par exemple la réponse à ta question dans cette discussion.
    Et pour en savoir plus sur les tags à utiliser dans la jsp pour afficher la liste déroulante, voir la FAQ.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut combobox
    bonjour
    j'arrive pas a maitriser le tag <html:select> je travaille avc struts1.2
    bon j'ai declarer ds ma jsp plusieurs donné parmis eux un combobox voila ma jsp:

    **********************************************************
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select name ="reponse2Form" property="fournisseur">
       <html:options name="reponse2Form" property ="nomfournisseur"/>
       </html:select>
    **********************************************************

    et dans mon form (bean) j'ai declaré ç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
    public class Reponse2Form extends ActionForm {
     
    private List nomfournisseur;
    private String fournisseur;
     
    public String getFournisseur() {
    		return fournisseur;
    	}
    public void setFournisseur(String fournisseur) {
    		this.fournisseur = fournisseur;
    	}
    public List getNomfournisseur() {
    		return nomfournisseur;
    	}	
     
    public void setNomfournisseur(List nomfournisseur) {
    		this.nomfournisseur = nomfournisseur;
    	}}
    dabord es ce que c'est juste ça (un combo se declare avc les 2valeurs String et List)

    *********************************************************
    puis ds l'action je fai ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
     
    	Reponse2Form reponse2Form = (Reponse2Form) form;
     
    rs = st.executeQuery("select DEST_NOM from GSS_DESTINATAIRE where DEST_TYPE ='fournisseur'"); // bien sur j'ai fait la connexion avc la base et elle marche tres bien
     
    while (rs.next())
    	    	{
     
    	 String   four = rs.getString(1).trim();
     
    	    	}
    et j'arrive pas a savoir la suite comment je charge mon combobox
    SVP aidez moi je suis vraiment perdu, je suis debutante en struts !!!

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il suffit d'ajouter chaque fournisseur dans une List et d'initialiser la propriété de l'ActionForm de type List, que tu as appelé nomFournisseur, comme ceci :
    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 ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    {
       Reponse2Form reponse2Form = (Reponse2Form) form;
     
       List listFournisseur= new ArrayList() ;
     
       rs = st.executeQuery("select DEST_NOM from GSS_DESTINATAIRE where DEST_TYPE ='fournisseur'"); // bien sur j'ai fait la connexion avc la base et elle marche tres bien
     
       while (rs.next())
       {
           String   four = rs.getString(1).trim();
           listFournisseur.add(four) ;
       }
       reponse2Form.setNomfournisseur(listFournisseur) ;
    }
    Selon les conventions de nommage Java, les propriétés doivent avoir une majuscule à chaque nouveau mot, sauf le premier.
    Tu devrais donc renommer nomfournisseur en nomFournisseur et modifier getter et setter en conséquence.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut combobox
    ok merci de me repondre
    mais j'ai un pb jai preparer la vue avc les champs je voulai la visualiser avan de commencer les traitements, jai ajouter une action just pour l'appler alors il m'affiche l'erreur suivante sachant que j'ai rien changé dans se que j'ai vous envoyé

    org.apache.jasper.JasperException: Property nomfournisseur returned a null value ??

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    L'affichage de la liste déroulante ne pourra se faire que si l'Action qui la charge est exécutée avant.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut pb combobox struts
    bonjour

    bon j'ai toujours le meme probleme de combobox

    voila ce ue j'ai fait

    ma jsp :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html:form action="/recep.do" method="post">
      <table border="0">
       <tr>
     
       <td>Fournisseur:</td>
       <td><html:select  property="fournisseur">
       <html:optionsCollection property="nomFournisseur" value="DEST_ID" label="DEST_NOM"  />
       </html:select>
        </tr>
    et voila mon form

    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
     
     
    public class Reponse2Form extends ActionForm {
     
    private String fournisseur;
    private List nomFournisseur;
     
    public String getFournisseur() {
    		return fournisseur;
    	}
     
    public void setFournisseur(String fournisseur) {
    		this.fournisseur = fournisseur;
    	}
     
     
    public List getNomFournisseur() {
    		return nomFournisseur;
    	}	
     
    public void setNomFournisseur(List nomFournisseur) {
    		this.nomFournisseur = nomFournisseur;
    	}

    et l'action

    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
     
     
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		Reponse2Form reponse2Form = (Reponse2Form) form;
     
     try
    	    {
    	    	st = con.createStatement();
    	    	rs = st.executeQuery("select DEST_NOM from GSS_DESTINATAIRE where DEST_TYPE ='fournisseur'");	
    	    	while (rs.next())
    	    	{
     
    	    		//fourn.addItem();// rs.getString(1).trim();
    	    		//fourn.addItem(rs.getString(1));
     
     
    	    	four = rs.getString(1).trim();
    	    	System.out.println(four);
    	    	listFournisseur.add(four);
    	    	System.out.println(listFournisseur);
     
    	    	}
    	    	reponse2Form.setNomFournisseur(listFournisseur);
    	    }}
    le struts_config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <form-beans >
    <form-bean name="reponse2Form" type="com.yourcompany.struts.form.Reponse2Form" />
     /form-beans>
    et quand je demande l'url il m'affiche l'erreur suivante :

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    org.apache.jasper.JasperException: Exception in JSP: /reponse2.jsp:49

    46:
    47: <td>Fournisseur:</td>
    48: <td><html:select property="fournisseur">
    49: <html:optionsCollection property="nomFournisseur" value="DEST_ID" label="DEST_NOM" />
    50: </html:select>
    51: </tr>
    52: <tr>


    la cause mere:
    javax.servlet.ServletException: No getter method available for property DEST_NOM for bean under name tibco //
    sachant que tibco est un nom de fournisseur dans ma table fournisseur

    SVP aidez moi

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ton Action crée une List de String, soit plus précisément une liste de noms des fournisseurs, et non une List d'objets ayant pour propriétés DEST_ID et DEST_NOM.

    Pour afficher la liste déroulante, il faut donc coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="fournisseur">
      <html:options property="nomFournisseur"/>
    </html:select>
    Si tu souhaites avoir dans la liste déroulante les id des fournisseurs en valeur et leurs noms en label, il faut constituer une List d'objets de type Fournisseur.
    Pour cela, il faut donc créer par exemple une classe Fournisseur avec pour propriétés id et nom et les getters et setters correspondant et ensuite, dans l'Action, constituer une List d'objets de type Fournisseur à partir du résultat du select comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    st = con.createStatement();
    rs = st.executeQuery("select DEST_ID, DEST_NOM from GSS_DESTINATAIRE where DEST_TYPE ='fournisseur'");	
    while (rs.next())
    {
        	Fournisseur fournisseur = new Fournisseur() ;
        	fournisseur.setId(rs.getString("DEST_ID")) ;
        	fournisseur.setNom(rs.getString("DEST_NOM")) ;
        	listFournisseur.add(fournisseur);
    }
    reponse2Form.setNomFournisseur(listFournisseur);
    Dans ce code, j'ai supposé que la colonne DEST_ID était de type String.
    Si elle est de type int, il faudra remplacer le rs.getString("DEST_ID") par un rs.getInt("DEST_ID") et modifier le type de la propriété id de la classe Fournisseur en conséquence.

    Et pour afficher la liste déroulante dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="fournisseur">
      <html:optionsCollection property="nomFournisseur" value="id" label="nom"/>
    </html:select>
    Il serait d'ailleurs plus judicieux d'appeler ta List de fournisseurs listFournisseur plutôt que nomFournisseur.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut pb combobox struts
    ok
    merci bcp pour votre aide, menan ça marche

  10. #10
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    juste une question , est ce que le type list est importé de java.util ?ou .awt ou ...

  11. #11
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    java.util

  12. #12
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    L'affichage de la liste déroulante ne pourra se faire que si l'Action qui la charge est exécutée avant.
    J'ai l'erreur : Property listNom returned a null value

    Comment fait-on pour que l'action qui la charge soit exécuter avant ??

    Merci par avance pour vos réponses

  13. #13
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il suffit d'appeler le .do correspondant.
    Je ne vois pas bien où est la difficulté là.

    Jusqu'à présent, comment fais-tu pour afficher la jsp ?

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

Discussions similaires

  1. Comment mettre dans une autre colonne à partir d'une ComboBox?
    Par Paulopiv dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/05/2012, 18h30
  2. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  3. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  4. [XL-2003] utiliser une combobox a partir d'une autre combobox
    Par fullmetalknet dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 04/08/2009, 14h02
  5. Réponses: 2
    Dernier message: 05/04/2009, 23h01

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