Je ne suis pas très expérimenté avec Struts I et mon problème est le suivant :

Je voudrais afficher un nombre variable de champs de saisie text dans un formulaire struts, ce nombre étant connu uniquement à l'exécution (passé en session).

Voici ce que j'ai pour le moment :

struts-config.xml :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form-bean name="saisiePieceForm" type="SaisiePieceForm">
    <form-property name="pieceList" type="java.util.List" />
</form-bean>
...
<action
            attribute="saisiePieceForm"
			input="/resources/jsp/saisiePiece.jsp"
			name="saisiePieceForm"
            path="/saisiePiece"
            parameter="/resources/jsp/saisiePiece.jsp"
            type="SaisiePieceAction">
			<forward
                name="success"
                path="/resources/jsp/main.jsp" />
        </action>

java : formulaire avec un attribut pieceList + getter & setter standard, + getter indexé

jsp :
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<% int nbPces = SessionDataManager.getPieces(session);
%>
 
<html:form action="saisiePiece">
  <table id="tableSaisieNumPiece" >
  <logic:iterate id="pieceList" name="saisiePieceForm" property="pieceList" indexId="i">
      <tr><td class="tdPiece">Pièce :</td>
      <td><htm:input name="PieceList" property="pieceList[$(i)]" ></htm:input></td>
      </tr>
    </logic:iterate>
  <tr></tr>      
  <tr><td></td><td><html:submit property="submit">  Ok  </html:submit></input></td></tr>
  </table>
  </html:form>
Evidemment, la liste de pieces attribut du Form étant vide, le tableau à une taille de 0

Quelqu'un saurait me conseiller une méthode pour créer un nombre de lignes = nbPces et lier ces entrées à des éléments de la liste ?