IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

Problème de sauvegarde des checkbox selectionnées sur une checkboxlist


Sujet :

Struts 2 Java

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème de sauvegarde des checkbox selectionnées sur une checkboxlist
    Bonjour,

    J'utilise une checkboxlist dans ma jsp, avec une List (de String) dans ma classe Action pour sauvegarder les données sélectionnées. Jusque là tout va bien, le passage entre ma jsp et ma classe Action se fait bien.
    J'ai cependant un souci.
    Lorsque je sélectionne une (ou plusieurs) checkbox, et que je valide mon formulaire, je passe alors dans ma méthode validate correspondant à mon action. Je fais exprès de ne pas saisir certaines données dans ma page pour que ma méthode validate retourne une erreur. Je reviens alors sur ma page de départ. Les checkbox que j'avais sélectionné le sont toujours, jusque là ça va.

    Ce qui ne fonctionne pas c'est lorsqu'après avoir effectué ce premier passage dans ma méthode validate (avec au moins une checkbox sélectionnée), lorsque je déselectionne TOUTES les checkbox, et que ma méthode validate me renvoi sur la même page (des erreurs sur d'autres champs), les checkbox qui avaient été déselectionnées sont toujours sélectionnées.
    En gros, le problème est que dans ma classe Action, une fois que la liste qui sauvegarde les checkbox sélectionnées a été initialisé (au moins une checkbox sélectionnée), elle ne revient jamais vide ou null (null c'est normal, mais elle devrait revenir vide).

    Quelqu'un sait si c'est un bug de struts2, ou je m'y prends pas comme il faut ?

    Voici mon code :
    JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <s:checkboxlist name="listeDomaine" list="listDomaines" onclick="changeDomaineSelect(this);"></s:checkboxlist> 
    ...
    Java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
        /**
         * Liste des domaines que l'utlisateur peut choisir
         */
        private Map<Integer, String> listDomaines;
     
        /**
         * Liste des domaines selectionnes par l'utlisateur dans l'interface.
         */
        private List<String> listeDomaine;
    ...

  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Après avoir été jeté un coup d'œil sur le site de suivi des bugs Struts (Struts2 notamment), il apparait que ce problème est en fait un bug Struts2. (https://issues.apache.org/struts/browse/WW-992)

    Il faut donc passer par une astuce réussir à désélectionner tous les champs.
    Il faut, dans la JSP, déclarer juste avant la checkboxlist, un champ de type hidden, avec le même nom que la checkboxlist (avec une valeur par defaut, dans mon cas "-1"), qui va simuler un checkbox (de la checkboxlist) qui serait toujours sélectionné, mais non visible à l'écran.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <s:hidden id="idOfCheckboxList_0" name="listeDomaine" value="-1" />
    Ainsi, la liste sauvegardant les checkbox sélectionné ne revient jamais vide, et la désélection des checkbox visible à l'écran s'effectue correctement.
    Cela implique de gérer différemment les sélections dans la classe Action. Pour savoir que l'utilisateur n'a rien sélectionné, il faut vérifier que la liste sauvegardant les sélections ne contient que l'élément de type hidden.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvegarder des données variables sur une autre feuille
    Par flash3300 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/01/2015, 13h19
  2. Sauvegarder des modifications effectuées sur une page html
    Par azertyuiop1234 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/08/2012, 14h43
  3. Problème de sauvegarde des modifications sur Eclipse
    Par hypnotis dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 21/03/2010, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo