Hi,

I don't figure out how to use the form:select tag with multiple select. I have try this :

---------------------------------
<form:select id="modeles" path="modeles" multiple="true" size="5" >
   <c:forEach var="modele" items="${enquete.modeles}">
   <form:option  value="${modele.id}" label="${modele.nom}"  />
   </c:forEach>
<form:options items="${modeles}" itemValue="id" itemLabel="nom"></form:options>
</form:select>
---------------------------------
no errors but nothing is selected and nothing is saved -
I have registered a custom binder for Modele object..

so I take a look to userForm (with roles)
I try this :
---------------------------------
<form:select id="modeles" path="modeles" multiple="true" size="5" >
   <c:forEach var="modele" items="${enquete.modeles}">
<option value="${modele.id}" selected="selected" >${modele.nom}</option>
   </c:forEach>
<form:options items="${modeles}" itemValue="id" itemLabel="nom"></form:options>
</form:select>
---------------------------------

and in my controller
---------------------------------
...
onSubmit{
...
String[] enqueteModeles = request.getParameterValues("modeles");
if (enqueteModeles != null) {
   log.debug("clearing enquete modeles");
   enquete.getModeles().clear();
   for (String modeleId : enqueteModeles) {
       log.debug("adding modele " + modeleId);
enquete.getModeles().add( modeleManager.get( Long.valueOf(modeleId)) );
   }
}else{
   log.debug("getParameterValues('modeles') is null");
}

enqueteManager.save(enquete);
...
}
...
---------------------------------
It's working fine for the selection but nothing is saved :
It's strange because in my logs I've got :

DEBUG [btpool0-1] EnqueteFormController.onSubmit(78) | clearing enquete modeles
DEBUG [btpool0-1] EnqueteFormController.onSubmit(81) | adding modele 1
DEBUG [btpool0-1] EnqueteFormController.onSubmit(81) | adding modele 2
DEBUG [btpool0-1] EnqueteFormController.onSubmit(81) | adding modele 3

So where is the problem ?
My Manager extends GenericManager...


A idea ?
Thanks, Julien Chanséaume.




Reply via email to