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 :

[struts] [checkbox] récupération des valeurs cochées


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut [Struts] [checkbox] récupération des valeurs cochées
    Bonjour à tous,

    J'ai bien parcouru le forum, j'ai trouvé plein de trucs intéressant, mais malheureusement, je n'ai pas trouvé de solution à mon pb....

    Je vous explique le truc.

    Dans ma JSP, j'affiche un tableau dynamiquement : la première colonne du tableau contient des checkbox qui ont comme valeur l'id des utilisateurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        <logic:iterate id="utilisateur" indexId="idUtilisateur" name="utilisateurForm" property="utilisateurs">
            <tr>
                <td width="4%">
                    <bean:define id="valeur" name="utilisateur" property ="idUtilisateur"/>
                    <html:checkbox name="utilisateurForm" property="idUtilisateursASupprimer" value="<%=String.valueOf(valeur)%>"/>
                </td>
                <td width="24%"><bean:write name="utilisateur" property="login" /></td>
                <td width="24%"><bean:write name="utilisateur" property="nom" /></td>
                <td width="24%"><bean:write name="utilisateur" property="prenom" /></td>
            </tr>
        </logic:iterate>
    Dans mon form, j'ai déclaré un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     String[]  idUtilisateursASupprimer
    avec ses getter et setter.

    Dans mon action, que j'ai essayé 2 méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                String[] checks = request.getParameterValues("idUtilisateursASupprimer");
                if(checks != null){
                    for (int i=0 ; i < checks.length ; i++){
                        System.out.println("utilisateur : " + checks[i]);
                    }
                } else {
                    System.out.println("C'EST NULL !!!");
                }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                String[] checks = utilisateurForm.getIdUtilisateursASupprimer();
                if(checks != null){
                    for (int i=0 ; i < checks.length ; i++){
                        System.out.println("utilisateur : " + checks[i]);
                    }
                } else {
                    System.out.println("C'EST NULL !!!");
                }
    Jusque là, pas de pb (enfin je crois )

    Le problème vient du fait que quand des cases sont cochées, j'obtiens toujours le "magnifique" message "C'EST NULL !!!"

    J'arrive pas à voir d'où vient le problème, j'ai déjà fait ça sur d'autres projets sans problème, et là, je coince....

    Ya surement un truc qui m'échappe.....
    Merci d'avance pour votre aide.

    Aude

  2. #2
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    arrives tu a récupérer les login, nom et prénom dans ton action??

    peux tu montrer a quoi ressemble le html généré ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Que je mette l'idUtilisateur ou le login comme value pour ma checkbox, ça fait la même chose. Le tableau que je récupère est null.

    Sinon le code HTML généré, ça donne ça :
    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
    19
    20
    21
    22
    23
    24
    25
     
    <table width="80%" align="center" border="1">
    	<tr>
    		<th>&nbsp;</th>
    		<th>Login</th>
    		<th>Nom</th>
    		<th>Prenom</th>
    	</tr>
    	<tr>
    		<td width="4%">				
    		<input type="checkbox" name="idUtilisateursASupprimer" value="1">
    		</td>
    		<td width="24%">toto</td>
    		<td width="24%">TOTO</td>
    		<td width="24%">TOTO</td>
    	</tr>
    	<tr>
    		<td width="4%">				
    		<input type="checkbox" name="idUtilisateursASupprimer" value="2">
    		</td>
    		<td width="24%">tata</td>
    		<td width="24%">TATA</td>
    		<td width="24%">TATA</td>
    	</tr>
    </table>
    Je ne vois vraiment pas d'où vient le problème...

  4. #4
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    Tu n'affectes peut etre pas la valeur dans le formbean ...

    il y a peut etre pas la methode setIdUtilisateursASupprimer();

    si tu fais juste ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       String[] checks = request.getParameterValues("idUtilisateursASupprimer"); 
                for (int i=0 ; i < checks.length ; i++){ 
                   System.out.println("utilisateur : " + checks[i]); 
                }
    ca fait quoi ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ben si je teste pas si mon tableau est null ou pas, il me fait un NullPointerException..... ce qui n'est pas étonnant du tout vu ce qu'il me faisait au-dessus....

  6. #6
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    et tu as bien la méthode dans ton formBean ?

  7. #7
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    dnas ton code, il y a bien un formulaire ?

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    j'ai bien un formulaire, j'ai bien mon setter.....

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 84
    Points : 232
    Points
    232
    Par défaut
    Salut abourell,

    Je te conseille d'utiliser <input type="checkbox" à la place de html:checkbox. Il est plus puissant(Ca peut paraitre bizarre. En effet, l'attribut checked n'est pas dans html:checkbox).
    Fait attention, dans l'Action, met bien le scope à request.
    Je sais, j'ai eu des soucis avec le html:checkbox. Il est prise de tête.

    Koko22

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci pour le conseil, mais malheureusement, ça va pas trop m'aider...

    Techniquement, il m'est impossible de passer mon action en request (vu le reste de l'appli) et je ne peux pas utiliser non plus <input type="checkbox"> il faut qu'il y ait que du struts ds mon code !!!

    Merci quand même....

  11. #11
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    ou la la c bizar
    moi j'ai tout ce que tu me met et quand mon tableau est vide
    il rentre pas dans ma boucle ..

    tu n'as pas a faire un test sur la nullité du tableau ..

    si il est null, c'est qu'il y a un probleme avec ton getter ..

  12. #12
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je suis un peu comme toi..... je trouve ça trop bizarre......
    Depuis ce matin je tourne le truc dans tous les sens et je cois pas ce qui cloche......

  13. #13
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    étonnant qu'il fasse autant chier que ca le taglib
    C'est vrai que moi je ne m'en sers pas ..


    NOTE: The underlying property value associated with this field should be of type boolean, and any value you specify should correspond to one of the Strings that indicate a true value ("true", "yes", or "on"). If you wish to utilize a set of related String values, consider using the multibox tag.
    il faut utiliser les multibox !!!!!

  14. #14
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    J'ai bien vu cette citation.... j'ai essayé avec les multibox et ça fait pareil !!!!
    Et puis j'ai déjà utilisé les checkbox ds le même genre de configuration sur d'autres projets et ça marchait nickel !!!

    Je vais essayer de remettre la main sir les sources des autres projets, pour voir ce qui diffère.... Je te tiens au courant si je trouve une solution.

    Merci qd même d'avoir passé du temps avec moi pour chercher !

  15. #15
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ayé, j'ai trouvé la solution....

    En fait le problème venait du fait que je ne "submitais" pas mon formulaire.
    Maintenant ça marche nickel.

    Merci à tous pour votre aide quand même.

  16. #16
    Nouveau Candidat au Club
    Inscrit en
    Mai 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Struts multibox checked par défaut
    Salut !

    Je souhaiterai lorsque j'appelle m'a page jsp, que les cases de ma multibox soit coché en fonction des valeurs contenu dans mon tableau selectedItem :


    <logic:iterate id="item" name="createDiploma" property="possibleItem">
    <html:multibox property="selectedItem">
    <bean:write name="item" property="value" />
    </html:multibox>
    <bean:write name="item" property="label" /><br />
    </logic:iterate>


    Dans cet exemple possibleItem contient par exemple les valeurs {1,2,3,4,5} et selectItem les valeurs {2,3}. Lorsque j'affiche ma page jsp, je souhaiterai que les cases correspondant au valeur 2 et 3 soit cochées.

    Y a-t-il une solution ?

    Merci d'avance...

  17. #17
    Membre régulier

    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 85
    Points
    85
    Par défaut
    Salut les gars j'ai un problème dans le même genre!
    Aider moi please!!

    Je souhaiterai lorsque j'appelle m'a page jsp, que les cases de ma multibox soit coché en fonction des valeurs contenu dans mon tableau selectedItem :


    <logic:iterate id="item" name="createDiploma" property="possibleItem">
    <html:multibox property="selectedItem">
    <bean:write name="item" property="value" />
    </html:multibox>
    <bean:write name="item" property="label" /><br />
    </logic:iterate>


    Dans cet exemple possibleItem contient par exemple les valeurs {1,2,3,4,5} et selectItem les valeurs {2,3}. Lorsque j'affiche ma page jsp, je souhaiterai que les cases correspondant au valeur 2 et 3 soit cochées.

    Y a-t-il une solution ?

    Merci d'avance...

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

Discussions similaires

  1. [MySQL] Récupération des valeurs d'une checkbox
    Par atchoum17 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/07/2011, 11h03
  2. [MySQL] Récupération des valeurs des checkbox
    Par Boris56 dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 02/03/2010, 17h37
  3. [checkbox] Récupération des valeurs de checkbox
    Par chng001 dans le forum Struts 1
    Réponses: 13
    Dernier message: 07/09/2009, 20h31
  4. Réponses: 2
    Dernier message: 14/04/2008, 13h00
  5. Réponses: 5
    Dernier message: 03/05/2006, 10h27

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