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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
CreerMouvementForm formulaire = (CreerMouvementForm) form;	
formulaire.set("codeMouvement", 0, "C");
formulaire.set("codeMouvement", 1, "A");
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?