j'ai un formulaire dans lequel je veux mettre une liste multiselectable
couplée à une collection dans mon formbean.
je veux donc qu'au load, elle charge la liste avec ma collection et qu'au submit, elle prenne les éléments sélectionnés pour remettre à jour ma collection.
mon jsp contient donc :
Tout ceci marche bien au chargement, maliste est initialisée avac la collection,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <label for="maCollection"><bean:message key="label.Formulaire.maCollection"/></label><br> <html:select property="maCollection" size="6" multiple="true"> <html:options property="maCollection"/> </html:select>
mais lorsque je fait un submit, je merécupère :
Donc apparemment, chaque entrée de la liste est interprétée comme une collection et non comme un string de la collection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 01:52:19,826 DEBUG [BeanUtils] setProperty(net.forms.MyBodyForm@161f39e, maCollection, [marc.dupont@wanadoo.fr,mdupont@aol.com]) 01:52:19,826 DEBUG [ConvertUtils] Convert string 'marc.dupont@wanadoo.fr' to class 'java.util.Collection' 01:52:19,826 DEBUG [ConvertUtils] Using converter org.apache.commons.beanutils.converters.StringConverter@1961581 01:52:19.831 WARN!! Exception for /appli/do/MonFormWrite java.lang.IllegalArgumentException: argument type mismatch
Quelqu'un a-t-il une idée ?
PS
getter/setter côté form :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public Collection getMaCollection() { return MaCollection(; } public void setMaCollection((Collection newCollection() { this.MaCollection = new ArrayList(); for (Iterator ite = newCollection.iterator(); ite.hasNext();) { this.MaCollection.add(ite.next()); } }
Partager