Mais actuellement, où constitues-tu la collection users ? dans une Action qui s'exécute avant l'affichage de la jsp contenant le formulaire non ?
Donc, si c'est bien le cas, il suffit d'ajouter name="nomDeTonFormBean" dans le mapping de cette Action avec un validate="false" dans le struts-config.xml.
Admettons que l'Action qui initialise le formulaire s'appelle InitAction et l'Action qui s'exécute au submit du formulaire s'appelle ProcessAction :
1 2 3 4 5 6 7 8
| <action path="/initAction" type="tonPackage.InitAction" name="nomDeTonFormBean"
scope="request" validate="false">
<forward name="success" path="/uneJsp.jsp"/>
</action>
<action path="/processAction" type="tonPackage.ProcessAction" name="nomDeTonFormBean"
scope="request" validate="true" input="/uneJsp.jsp">
<forward name="success" path="/uneAutreJsp.jsp"/>
</action> |
Et dans la méthode execute de l'Action InitAction :
1 2 3
| TonActionForm tonActionForm = (TonActionForm) form ;
String[] ids= new String[users.size()];
tonActionForm.setIds(ids) ; |
Tu peux d'ailleurs de la même façon initialiser ton formulaire avec la collection users plutôt que de faire un setAttribute (ce que tu dois faire actuellement non ?) et ça donnerait ceci :
tonActionForm.setUsers(users) ;
et dans la jsp :
1 2 3 4 5
| <layout:form action="processAction">
<layout:collection property="users" ...>
...
</layout:collection>
</layout:form> |
Partager