comment afficher des cases à cocher pour sélectionner un ou plusieurs beans dans une layout:collection (je veux avoir un colomn des cases à cocher )
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 JSP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'action
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part <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 par
Code : Sélectionner tout - Visualiser dans une fenêtre à part request.getSession().setAttribute("ListeCourriersBO",getListCourrierBOCmd.getListCourriersBO());
Code : Sélectionner tout - Visualiser dans une fenêtre à part <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 : Sélectionner tout - Visualiser dans une fenêtre à part <layout:collection name="ListeCourriersBO" ...>
Sinon, le tag layout:collection est-il bien dans un tag layout:form ?
oui bien sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ?
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 ?
Partager