Bonjour à tous,
Je viens de me mettre à Struts 2 et je souhaite faire appel à vous, car je n'ai rien trouvé sur le net ou dans des bouquins pour résoudre mon problème.
Point de vue métier, je souhaite affecter une ou plusieurs agences à un utilisateur. Et une agence pourra être affecté à un ou plusieurs utilisateurs. (Relation 0,n <-> 0,n).
J'ai fais mon mapping Hibernate qui fonctionne, à priori, mais mon problème ne se situe pas là.
Je rencontre des difficultés avec les checkboxlist,
à la création d'un utilisateur, j'affiche la liste des agences possibles (allAgences)
Cela fonctionne et les agences sont bien affectées à l'utilisateur (si le formulaire est validé sans erreur)Code:
1
2 <s:checkboxlist label="Agences" name="agencesIds" list="allAgences" listKey="id" listValue="libelle" />
Lors de la modification (ou si le formulaire n'est pas validé) j'aimerai récupérer la liste des agences qui ont déjà été affectées à l'utilisateur.
(Le post juste en dessous "Problème de sauvegarde des checkbox selectionnées sur une checkboxlist" ne pas aidé malheureusement)
Je pensais qu'un code de ce genre pourrais résoudre mon problème :
Malheureusement ce n'est pas le cas, je ne peux initialiser qu'une seule checkbox en forçant manuellement value à une valeur (1, par exemple), dans ce cas la checkbox dont l'id=1 est bien coché, mais je n'arrive pas à cocher une liste complète de checkbox.Code:
1
2 <s:checkboxlist label="Agences" name="agencesIds" value="agencesAffectees" list="allAgences" listKey="id" listValue="libelle" />
Dans la partie java :
Autre chose, je passe par les id de mes agences pour les ajouter à mon utilisateur, je vais récupérer mes objets selon leurs id, j'aimerai savoir s'il est possible d'ajouter directement les agences, j'ai une erreur lorsque j'aeesaye cette méthode : "invalid value for field agences"Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class Utilisateur { private int id; private String nom; private String prenom; private Set<Agence> agencesAffectees; ... public void setAgencesAffectees(Set agencesAffectees) { this.agencesAffectees = agencesAffectees; } public void setAgencesIds(Set agencesIds) { Iterator<?> it = agencesIds.iterator(); DB db = new DB(); while (it.hasNext()) { int id = Integer.parseInt((String) it.next()); this.agencesAffectees.add((Agence) db.get(id, Agence.class)); } }
P.S : Je n'ai peut être pas été très clair, n'hésitez à me poser des questions pour me faire avancer.
Merci d'avance.