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 1 Java Discussion :

Liste de personnes et checkbox associées


Sujet :

Struts 1 Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Points : 228
    Points
    228
    Par défaut Liste de personnes et checkbox associées
    Bonjour,

    J'ai une liste de personnes à afficher dans ma JSP, pour ça j'ai un bean qui est une collection dans ma session.
    En plus du nom et prenom pour chaque personne il me faut sur la meme ligne une checkbox, qui servira à obtenir une liste de personnes sélectionnées.

    Ce que je me demande c'est comment faire pour associer une checkbox à une personne. C'est tout simple.
    A la rigueur je saurais afficher une checkbox sur chaque ligne, mais comment ensuite savoir que si je coche la 3éme checkbox ça correspond à la troisième personne (à part justement en sachant que si je choisis la 3eme box, c'est la troisième personne qui est sélectionnée) ?

    Merci d'avance.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans la classe Personne, tu pourrais ajouter une propriété de type boolean que tu pourrais appeler select avec les méthodes setSelect et isSelect correspondante.

    Ensuite, quand tu constitues la collection de beans Personne, tu affectes une value false à chaque propriété select.

    Et dans ta jsp, tu peux utiliser les tags nested comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <nested:iterate property="listPersonnes">
       <nested:checkbox property="select"/>
       <nested:write property="nom"/>
       <nested:write property="prenom"/>
    </nested:iterate>
    Et enfin, dans l'Action qui s'exécute au submit du formulaire, lorsque tu itéreras sur la collection de Personnes, tu pourras tester la valeur de la propriété select de chacune des personnes pour déterminer si sélectée ou non.

    C'est une solution, je ne sais pas si c'est la meilleure mais ça devrait fonctionner.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Points : 228
    Points
    228
    Par défaut
    Oui, c'est une bonne idée (je n'ai pas encore testé, mais le principe est intéressant).
    Il faut seulement pouvoir agir sur la création de la collection. Or je ne peux pas. J'ai juste accés à une méthode qui retourne cette Collection.

    Mais la nuit porte conseil et j'ai eu une idée, que je vais m'empresser de tester.
    Sachant que pour une personne il y a un attribut "idPersonne" je peux ajouter une checkbox (<html:checkbox>) et lui donner comme attribut value, cet idPersonne.
    Ensuite dans mon action Submit, je récupère ma collection de checkbox (ou mon tableau) déclaré(e) dans mon DynaActionForm, et sachant que les valeurs de checkbox non-cochées sont "null" il me suffit de récupérer les valeurs non nulles, qui seront des idPersonne.
    D'ailleurs, en parlant de ça, dans mon fichier de conf struts comment je peux faire pour déclarer une collection de taille indéterminée de checkbox, je mets un java.lang.String[] ?

    Faut voir ce que ça donne... Je vous tiens au courant.

    Merci pour ta réponse

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Points : 228
    Points
    228
    Par défaut
    Bon, ça marche pas super tout ça.
    Je n'arrive pas à attribuer une valeur dynamiquement à l'atrribut "value" de mes checkbox.

    dans mon objet employe, il y a un attribut "codeActeur" et c'est lui que je voudrais attribuer à la value de ma checkbox (là où j'ai mis "on").
    J'ai essayé plusieurs syntaxes, mais rien ne fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <logic:iterate name="listeEmployes" id="employe">
    		<div class="ligne_dossiers">
    		<div class="case_check" style="width:62px;">
    		<html:checkbox name="employesSelectionnes"
    			property="codeActeur" value="on"/></div>
    		<div class="case" style="width:151px;">
                    <bean:write name="employe" property="nom" /></div>
                   <div class="case" style="width:146px;">
                   <bean:write name="employe" property="prenom" /></div>
                   <div class="case" style="width:158px;">xx/yy/zzzz</div>
    		</div>
    </logic:iterate>
    Alors ce n'est peut-être tout simplement pas possible d'attribuer dynamiquement une valeur à "value".

    Si ce n'est pas possible, quelle technique envisagez-vous pour pouvoir récupérer l'info (ma liste de codeActeur selectionnés) ?

    Merci d'avance

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Si tu es en J2EE 1.4, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:checkbox name="employesSelectionnes" property="codeActeur" value="${codeActeur}"/>
    Si en J2EE 1.3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ taglib uri="/WEB-INF/struts-html-el.tld" prefix="html-el" %>
     
    <html-el:checkbox name="employesSelectionnes" property="codeActeur" value="${codeActeur}"/>
    Modératrice Java - Struts, Servlets/JSP, ...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Points : 228
    Points
    228
    Par défaut
    Bonjour,

    j'ai finalement trouvé une façon de faire qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <logic:iterate name="listeEmployes" id="employe">
    			<div class="ligne_dossiers">
    			<div class="case_check" style="width:62px;">
                            <html:multibox property="employesSelectionnes" value="<%=((Employe) employe).getCodeActeur() %>" /></div>
    			<div class="case" style="width:151px;">
                            <bean:write name="employe" property="nom" /></div>
    			<div class="case" style="width:146px;">
                            <bean:write name="employe" property="prenom" /></div>
                            <div class="case" style="width:158px;">xx/yy/zzzz</div>
                            </div>
    </logic:iterate>
    Donc reste à voir si ça tourne sur JBoss, mais sur Tomcat oui.

    Je suis en J2EE 1.4, mais je crois être tombé sur un autre sujet dans lequel quelqu'un a essayé ta technique (${codeActeur}) mais ça ne semblait pas fonctionner. Je tenterai quand même si ma méthode ne fonctionne pas.

    Merci encore

    PS: ça marche aussi en remplaçant le terme multibox par checkbox... il faudrait que je sache pourquoi, ça serait pas mal.

Discussions similaires

  1. [VB.NET] Association D'images à une liste de personnes.
    Par canBelive dans le forum Débuter
    Réponses: 4
    Dernier message: 27/09/2012, 19h46
  2. Réponses: 4
    Dernier message: 23/06/2006, 17h35
  3. [Tomcat] Liste des servlets et sessions associées
    Par frala dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 08/02/2006, 14h53
  4. activation liste déroulante sur un checkbox
    Par julio_097 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2005, 15h45

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