Bonjour à toutes zet à tous !
Bon Je ne passe jamais par ce forum sans un bon vieux soucis à deux balles et bizaroide.
Le problème du jour est le suivant :
J'ai une liste de parcs de clients. J'ai un message d'incident que je veux affecter à un ou plusieurs parcs. Alors pour cela j'associe à chaque parc un flag "coche" qui une fois le formulaire validé je regarde pour voir si on a coché la case.
Bon je sens que deux personnes ont déjà quitté le sujet, bon regardons le code...
Au niveau de la JSP voici la liste de parc
Au niveau de l'objet parc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <nested:iterate property="listeParc"> <tr> <td align="center"><b><nested:write property="parc" /></b></td> <td align="center"><nested:checkbox property="estCoche" value="true" /></td> </tr> </nested:iterate>
Au niveau de l'ActionForm :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private boolean estCoche = false; public boolean getEstCoche() { return estCoche; } public void setEstCoche(boolean estCoche) { this.estCoche = estCoche; }
Au niveau de mon DispatchAction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void reset(ActionMapping arg0, HttpServletRequest request) { Iterator iteListeParc = this.listeParc.iterator(); while (iteListeParc.hasNext()) { ((Parc) iteListeParc.next()).setEstCoche(false); } }
Il est à noté qu'au débug, la liste des parcs monForm.getListeParc(), contient déjà un parc décoché par le lutin !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /*** Avant j'ai supprimé touts les parcs liés à l'incident ***/ Iterator itelisteParc = monForm.getListeParc().iterator(); while (itelisteParc.hasNext()) { Parc parc = (Parc) itelisteParc.next(); if (parc.getEstCoche()) { messMgr.addParcToIncident(parcIncident); } }
Le formulaire est de type scope="session"
Mon problème docteur c'est que quand je coche, par exemple, les 4 premiers parcs de la liste, que je valide, un petit lutin me décoche TOUJOURS la même case.
->enregistrement ->
Les cases décochées par le lutin sont différentes en fonction des cases cochées à l'origine, mais si je coche toujours les même, les mêmes seront toujours décochées.
Alors avant de me jeter par la fenêtre, je m'en remets à vous.
Merci !
Partager