[Struts] Valeur défaut select répété plusieurs fois
Bonjour,
Le point que je vais aborder est à mons avis une problématique courante dans des applications web.
J'ai une liste déroulante (html:select) dans un logic:iterate :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<logic:notEmpty name="contratAdherent" property="lesBeneficiaire">
<logic:iterate name="contratAdherent" property="lesBeneficiaire" id="beneficiaire" indexId="cptBeneficiaire">
<tr height="20">
<td class="detail_vert" align="left">
<html:select property="codeMouvement">
<html:option value="A">Annulation</html:option>
<html:option value="C">Création</html:option>
</html:select>
</td>
</tr>
</logic:iterate>
</logic:notEmpty> |
Les select ont donc tous le même nom.
Résultat HTML:
Code:
1 2 3 4 5
|
<select name="codeMouvement">
<option value="A" selected="selected">Annulation</option>
<option value="C" selected="selected">Création</option>
</select> |
Déclaration du formulaire dans le struts-config.xml:
Code:
1 2 3 4 5
|
<form-bean name="creerMouvementForm" type="fr.enfamille.cetelic.form.CreerMouvementForm">
<!-- le code mouvement -->
<form-property name="codeMouvement" type="java.lang.String[]" />
</form-bean> |
Je souhaite donner une valeur par défaut à chaque liste, mais je ne veux pas que ce soit forcément la même valeur pour chacune d'entre elles.
Exemple:
j'aimerais initialiser la prémière liste à "Création" et la seconde à "Annulation".
Je tente les codes suivants dans mon Action, mais en vain:
Code:
1 2 3 4
|
CreerMouvementForm formulaire = (CreerMouvementForm) form;
formulaire.set("codeMouvement", 0, "C");
formulaire.set("codeMouvement", 1, "A"); |
et
Code:
1 2 3
|
String[] tableau = {"C", "A"};
formulaire.set("codeMouvement", tableau); |
Cela ne marche pas...
Quand je mets "A" partout, il met bien "Annulation" pour les deux listes,
mais si je mets au moins un "C" à une des listes, toutes les listes ont la valeur "Création" par défaut. J'ai noté que c'est parceque l'option "Création" est la dernière.
Si j'inverse les positions des 2 options, et que je mets "A" en valeur par défaut pour au moins une des listes, toutes les listes ont "Annulation" en valeur par défaut.
Quelqu'un a une idée ?