comment afficher des cases à cocher pour sélectionner un ou plusieurs beans dans une layout:collection (je veux avoir un colomn des cases à cocher )
Version imprimable
comment afficher des cases à cocher pour sélectionner un ou plusieurs beans dans une layout:collection (je veux avoir un colomn des cases à cocher )
Struts-Layout je suppose ?
Tu peux utiliser ceci peut-être
A+Code:
1
2
3
4 <layout:checkboxes cols="3" key="id.message" property="selectedElement"> <layout:options property="laCollection"/> </layout:checkboxes>
Pour que cela fonctionne, il faut définir une propriété, correspondant à celle que j'ai appelé selects, de type String[] dans l'ActionForm avec getter et setter.Code:
1
2
3
4 <layout:collection property="uneCollection" selectType="checkbox" selectName="selects" selectProperty="propriete1"> <layout:collectionItem title="libellePropriete1" property="propriete1"/> <layout:collectionItem title="libellePropriete2" property="propriete2"/> </layout:collection>
Ce tableau de String, que tu pourras récupérer dans l'Action exécutée au submit du formulaire, contiendra les "propriete1" sélectées.
Merci
et si je veux récuperer toute une bean pas un seul champs de chaque ligne
j'ai tjr une erreur :
bout de code de JSPCode:
1
2
3
4
5 g.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:427) at org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:340) at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:684) at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715) at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
bout de code de l'actionCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 <jsp:useBean id="ListeCourriersBO" class="java.util.Vector" scope="session"/> <layout:grid align="center" > <layout:row> <layout:column> <layout:collection align="center" id="lesCourrierBO" styleClass="FORM" name="ListeCourriersBO" indexId="index" selectName="selects" selectType="checkbox" selectProperty="refcourrier" > <layout:collectionItem title="title.refcourrier" property="refcourrier" sortable="true"/> <layout:collectionItem title="title.refbor " property="refbor" sortable="true"/> <layout:collectionItem title="title.datebor" property="datebor" sortable="true"/> <layout:collectionItem title="title.refboc" property="refboc" sortable="true"/> <layout:collectionItem title="title.dateboc" property="dateboc" sortable="true"/> </layout:collection> </layout:column> </layout:row>
Code:
1
2
3
4
5
6
7
8
9 public ActionForward priseECCourrierBO ( ActionMapping mapping, HomeForm homeForm, HttpServletRequest request) throws Exception, ServletException, SQLException { GetListCourrierBOCmd getListCourrierBOCmd=new GetListCourrierBOCmd(); getListCourrierBOCmd.execute(); request.getSession().setAttribute("ListeCourriersBO",getListCourrierBOCmd.getListCourriersBO()); return mapping.findForward( "success");
Et si tu enlèves le tag jsp:useBean :
Code:<jsp:useBean id="ListeCourriersBO" class="java.util.Vector" scope="session"/>
tjr la méme erreur
mais est ce que ce n'est pas correcte de mettre dans l'action
et dans la JSP on le recupére parCode:request.getSession().setAttribute("ListeCourriersBO",getListCourrierBOCmd.getListCourriersBO());
Code:<jsp:useBean id="ListeCourriersBO" class="java.util.Vector" scope="session"/>
En Struts et en Struts-Layout, il n'est pas utile de coder le tag jsp:useBean.
A partir du moment où tu codes ceci :
il va automatiquement chercher la collection ListeCourriersBO dans le scope.Code:<layout:collection name="ListeCourriersBO" ...>
Sinon, le tag layout:collection est-il bien dans un tag layout:form ?
oui bien sur
Code:
1
2
3
4
5
6
7
8
9 <layout:form action="/PECCourrierBOAction" styleClass="FORM" method="POST"> <script type="text/javascript" language="JavaScript1.2" src="<%=ur%>/JS/apopwin.js"></script> <script type="text/javascript" src="/config/datagrid.js"></script> <layout:grid align="center" > <layout:row> <layout:column> <layout:collection align="center" id="lesCourrierBO" styleClass="FORM" name="ListeCourriersBO" indexId="index" selectName="selects" selectType="checkbox" selectProperty="refcourrier" >
L'erreur que tu obtiens apparaît à l'affichage du formulaire ou à la soumission ?
à la soumission
je veux porter a ta connaissance que j'ai essayé le meme code avec logic:iterate et ça marche bien
Peux-tu me donner l'erreur en entier (avec la cause mère) ?
Alors, d'où venait l'erreur ?
Merci
Je suis sûr que le code est correct
J’ai enlevé la propriété selectName et ça marche bien
mais si tu as enlevé l'attribut selectName, comment récupères-tu les propriétés sélectées ?