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 :
donc le forward vers afficheForm m'affiche cette 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
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"); } }
et voici son bean de formulaire (l'ActionForm) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; ....
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 !
Partager