Bonjour,
Je suis en train de suivre le tuto de Serge Tahé. Je suis en train de faire l'étude de cas mettant en pratique tous les éléments d'un formulaire html.
Je bloque au niveau des select. Celui ci ne se remplit pas.
Dans formulaire.jsp, la vue, j'utilise bien <html:optionS qui attends un tableau.
Code:
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 <html:form action="/confirmation"> .... .... <td>Combo</td> <td> <html:select name="dynaFormulaire" property="combo" > <html:options name="dynaFormulaire" property="valeursCombo" /> </html:select> </td> </tr> <tr> <td>Liste à selection unique</td> <td> <html:select name="dynaFormulaire" property="listeSimple" size="3"> <html:options name="dynaFormulaire" property="valeursListeSimple" /> </html:select> </td> </tr> <tr> <td>Liste à selection multiple</td> <td> <html:select name="dynaFormulaire" property="listeMultiple" size="5" multiple="true"> <html:options name="dynaFormulaire" property="valeursListeMultiple" /> </html:select> </td> ..... <html:submit>Envoyer</html:submit> </html:form>
La vue est rattaché
- à l'action "com.myapp.struts.InitFormulaireAction" qui va remplir le combo avant de l'envoyer au navigateur
Code:
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 <form-beans> <form-bean name="dynaFormulaire" type="com.myapp.struts.DynaActionForm"> <form-property name="opt" type="java.lang.String" initial="non"/> <form-property name="chk1" type="java.lang.String" /> <form-property name="chk2" type="java.lang.String" /> <form-property name="chk3" type="java.lang.String" /> <form-property name="champSaisie" type="java.lang.String" initial=""/> <form-property name="mdp" type="java.lang.String" /> <form-property name="boiteSaisie" type="java.lang.String" initial=""/> <form-property name="combo" type="java.lang.String" /> <form-property name="listeSimple" type="java.lang.String" /> <form-property name="listeMultiple" type="java.lang.String[]" /> <form-property name="secret" type="java.lang.String" initial="xxx"/> <form-property name="valeursCombo" type="java.lang.String[]" /> <form-property name="valeursListeSimple" type="java.lang.String[]" /> <form-property name="valeursListeMultiple" type="java.lang.String[]" /> </form-bean> </form-beans> ... .... <action path="/init" name="dynaFormulaire" validate="false" scope="session" type="com.myapp.struts.InitFormulaireAction" > <forward name="afficherFormulaire" path="/vues/formulaire.jsp" /> </action>
et l'action :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class InitFormulaireAction extends org.apache.struts.action.Action { private final static String SUCCESS = "afficherFormulaire"; public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm formulaire = (DynaActionForm) form; //formulaire.set ("valeursCombo", getValeurs (5, "combo")); String[] t = {"toto", "titi" }; formulaire.set ("valeursCombo", t); formulaire.set ("valeursListeSimple", getValeurs(7, "simple")); formulaire.set ("valeursListeMultiple", getValeurs(10, "multiple")); return mapping.findForward(SUCCESS); } private String[] getValeurs (int taille, String label) { String [] valeurs = new String[taille]; for (int i=0;i<taille;i++) { valeurs[i] = label + i; } return valeurs; }
Bref, je bloque. Je m'attendrais à voire toto et titi dans le select valeursCombo. J'ai bien verifier si les noms des champs entre l'action et la vue jsp etaient bien identiques.
Ou ai je pourrais avoir fauté ?