[Struts] Problème pour itérer sur un vecteur
Bonjour,
Le code vaut mieux qu'une longue phrase alors voilà d'abord l'Action qui se charge d'initialiser le bean de formulaire, c'est par lui que j'appelle l'affichage de ma jsp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class EditerAgentBuilder extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
EditerAgentForm f = (EditerAgentForm) form;
ArrayList listeDir = new DirectionMetier().getListePourRadio();
f.setListeDirections(listeDir);
Vector servByDirection = new Vector();
ServiceMetier serv=new ServiceMetier();
for (int i=1;i<=9;i++){
servByDirection.add(serv.getListePourSelect(i));
}
f.setVecteurListesServices(servByDirection);
return mapping.findForward("afficheForm");
}
} |
donc le forward vers afficheForm m'affiche cette jsp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<br />
<h3>Editions des données de l'agent <bean:write name="agent" property="nom"/> <bean:write name="agent" property="prenom"/></h3>
<logic:iterate id="direction" name="EditerAgentForm" indexId="ind" property="listeDirections">
<input type="radio" name="directionChoisie" value="<bean:write name="direction" property="value"/>"/><bean:write name="direction" property="label"/>
<html:select property="noServiceChoisi">
<html:optionsCollection property="vecteurListesServices[ind]" value="value" label="label"/>
</html:select>
<br />
</logic:iterate> |
et voici son bean de formulaire (l'ActionForm) :
Code:
1 2 3 4 5 6 7 8
|
public class EditerAgentForm extends org.apache.struts.action.ActionForm {
private ArrayList listeFonctions;
private ArrayList listeDirections;
private String directionChoisie;
private Vector vecteurListesServices;
.... |
En fait comme vous le voyez dans l'Action qui initialise le form, d'abord je rempli un ArrayList qui est affiché sous forme de boutons radio (ca ca marche très bien), puis ensuite dans le for je place 9 ArrayList dans un vecteur et ce vecteur je le place dans l'ActionForm également.
Ensuite dans la jsp, je voudrais, dans le premier iterate, lister tous les boutons radio (ca marche) et ensuite construire un select à partir du ième élement du vecteur, c'est à dire le ième ArrayList.
J'ai mis "vecteurListesServices[ind]" pour vous faire comprendre, mais c'est évident que ca ne passe pas.
Mais je n'arrive pas avec les taglibs, à atteindre tel élement du vecteur...
je suis assez embeté, parce que je ne vois pas comment faire autrement, peut-être avec d'autres tags?
merci d'avance !