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 :

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>
Tout ceci marche bien au chargement, maliste est initialisée avac la collection,

mais lorsque je fait un submit, je merécupère :


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
Donc apparemment, chaque entrée de la liste est interprétée comme une collection et non comme un string de la collection.

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());
	}
}