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 :

Checkboxlist pre checked


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut Checkboxlist pre checked
    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)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <s:checkboxlist label="Agences" name="agencesIds"				
    		list="allAgences" listKey="id" listValue="libelle" />
    Cela fonctionne et les agences sont bien affectées à l'utilisateur (si le formulaire est validé sans erreur)

    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <s:checkboxlist label="Agences" name="agencesIds" value="agencesAffectees"		
    		list="allAgences" listKey="id" listValue="libelle" />
    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.


    Dans la partie java :
    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
     
    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));
    		}
    	}
    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"

    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.

  2. #2
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut
    Bonjour,

    Pour ce qui est de ton premier problème, tu souhaites récupérer toutes les valeurs cochées par l'utilisateur lorsque tu recharges ta page ?
    Si c'est le cas, elles sont automatiquement sauvegardé dans ta liste "agencesIds" que tu dois déclarer dans ta classe Action, avec un getter et un setter. Si tu fais comme cela, les IDs de tes checkbox sont sauvegardé dans cette liste.

    En espérant que cela puisse t'aider, je ne sais pas si c'est cela qu'il te fallait...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    Merci Djé11 pour cette réponse rapide, elle m'a bien aidé.
    Grâce à ta réponse, mes cases cochées sont bien sauvegardées lorsque j'envoie le formulaire et que celui-ci n'est pas validé (champ requis vide).

    Après avoir lu ta réponse, il me restait un problème que j'ai résolu après quelques recherches :
    Je n'arrivais pas à initialiser correctement ma liste lors de la modification d'un utilisateur.
    Dans la méthode "prepare" de ma classe action j'ai initialisé ma liste "agencesId", mais pour que cela fonctionne il faut que la liste "agencesId" soit une XWorkList, une simple List (java.util) ne permet pas d'initialiser correctement une checkboxlist.

    Merci à toi djé11 et j'espère que cela pourra servir à d'autres.

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

Discussions similaires

  1. Nom de la balise "père" ?
    Par haypo dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/07/2003, 19h32
  2. Check sur une colonne de table "en cours"
    Par in dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/07/2003, 09h47
  3. checking de connexion
    Par JEG dans le forum Développement
    Réponses: 4
    Dernier message: 09/10/2002, 13h36
  4. [propriétés]Option Checked
    Par psl dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/08/2002, 08h07
  5. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49

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