Bonjour,

debutant java-struts, je cherche a faire qq chose qui a forcement ete fait 1 000 000 000 de fois au minimum et pour lequel je ne trouve aucune explication claire sur le net (alors que j'imagine que ca doit exister forcement, mais la saloperie de proxy ici filtre 99% des sites, heureusement pas dvp).
Le truc est simplement le remplissage d'une liste select avec des valeurs en base, j'ai un objet BDD qui contient une methode static get comme suit :
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
38
39
40
41
42
43
44
45
46
47
48
49
public class BDD implements java.io.Serializable
{
        private int idBDD;
        private String nom;
        public BDD() {}
 
        public int getIdBDD() { return this.idBDD; }
        public String getNom() { return this.nom; }
 
        public static BDD[] getListeBDD(Connection connexion)
        {
                CallableStatement st = null;
                ResultSet rs = null;
                String requete = "BEGIN ? := get_BDDs(); END;";
                ArrayList listeBDD = new ArrayList();
                BDD lBDDRetour[] = null;
                try
                {
                        st = connexion.prepareCall(requete);
                        st.registerOutParameter(1, OracleTypes.CURSOR);
                        st.execute();
 
                        rs = (ResultSet) st.getObject(1);
 
                        while(rs.next())
                        {
                                BDD maBDD = new BDD();
                                maBDD.setIdBDD( rs.getInt("idBdd") );
                                maBDD.setNom( rs.getString("nom") );
                                listeBDD.add( maBDD );
                        }
 
                        rs.close();
                        st.close();
                        BDD lBDD[] = new BDD[listeBDD.size()];
                        for ( int i = 0; i < listeBDD.size(); i++ )
                        {
                                lBDD[i] = (BDD) listeBDD.get(i);
                        }
                        lBDDRetour = lBDD;
                }
                catch(Exception ex)
                {
                        ex.printStackTrace();
                }
 
                return lBDDRetour;
        }
}
La copie de vecteur ne me plait deja pas des masses dans ce code, mais passons....
dans mon fichier de config struts :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<form-bean name="frmBDD" type="org.apache.struts.action.DynaActionForm">
      <form-property name="id" type="java.lang.Integer"/>
      <form-property name="description" type="java.lang.String"/>
      <form-property name="idSchemaBaseOrg" type="sgdt.metier.BDD[]"/>
</form-bean>
Ce qui me permetra de mettre la valeur initiale de ma combo quand j'aurai trouve la syntaxe.
(j'ote ce qui ne sert a rien pour mon probleme)
dans mon 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
public class ActionBDD extends ActionFWT
{
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                        HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, SQLExc
eption
        {
                Connection lCnx = null;
                DynaActionForm lForm = (DynaActionForm) form;
 
                // Lecture de la table BDD pour remplir la combo.
                System.out.println("Lecture combo");
                if ( lCnx == null )
                {
                        lCnx = getConnection(request);
                }
                BDD lBDDs[] =  BDD.getListeBDD(lCnx);
 
                request.setAttribute("beanBDD", lBDDs);
                return mapping.findForward("next");
        }
}
et dans ma page jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<html:options name="beanBDD" property="idBDD" labelProperty="nom"/>
qui genere le superbe code d'erreur :

javax.servlet.ServletException: No getter method available for property idBDD for bean under name beanBDD
Qu'ai-je donc completement loupe comme notion ???
Toute aide est la bienvenue car la je seche et personne autour de moi ne semble apte a me fournir un coup de main digne de ce nom.
Merci d'avance
Fred.