Bonjour,

je suis en train d'essayer de faire fonctionner un converter avec Struts2.
J'ai un bean Civility avec entres autres les attributs id et shortLabel. J'ai aussi une classe User avec un attribut de type civility.

J'aimerais juste lors de la création d'un User avoir un select avec les Civility.

Alors j'ai mon converter :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public class CivilityConverter extends StrutsTypeConverter {
 
	@Autowired
	private CivilityDao civilityDao;
 
	@Override
	public Object convertFromString(Map context,String[] values,Class toClass) {
		Long civilityId = Long.parseLong(values[0]);
		return civilityDao.get(civilityId);
	}
 
	@Override
	public String convertToString(Map context, Object o) {
		Civility civility = (Civility)o;
		return civility.getId().toString();
	}
 
}
Mes tentatives de select pour une modification d'utilisateur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<s:select key="civility" name="user.civility" list="allCivilities"/>
Celui-là fonctionne préselectionne bien la bonne Civility mais la value donne "<option value="fr.lmline.model.Civility@20">1</option>" et donc l'enregistrement ne fonctionne pas, et en plus logiquement j'ai les id à l'affichage.

Pour l'affichage j'ajoute listValue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<s:select key="civility" name="user.civility" list="allCivilities" listValue="shortLabel" />
Là l'affichage est bon mais la value toujours pas "<option value="fr.lmline.model.Civility@20">Mlle</option>
", logique

Pour les value j'ajoute listKey :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<s:select key="civility" name="user.civility" list="allCivilities" listKey="id" listValue="shortLabel" />
Là tout fonctionne sauf qu'en modification avec un utilisateur déjà créé la valeur n'est pas présélectionnée (c'est la première valeur de la liste) !?

Quelqu'un saurait-il comment faire fonctionner ça "intégralement" ?

Merci de votre aide