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 :
Mes tentatives de select pour une modification d'utilisateur:
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(); } }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <s:select key="civility" name="user.civility" list="allCivilities"/>
Pour l'affichage j'ajoute listValue :
Là l'affichage est bon mais la value toujours pas "<option value="fr.lmline.model.Civility@20">Mlle</option>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <s:select key="civility" name="user.civility" list="allCivilities" listValue="shortLabel" />
", logique
Pour les value j'ajoute listKey :
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) !?
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" />
Quelqu'un saurait-il comment faire fonctionner ça "intégralement" ?
Merci de votre aide
Partager