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] <logic:iterate> + <html:multibox>


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Points : 73
    Points
    73
    Par défaut [Struts] <logic:iterate> + <html:multibox>
    mon ActionForm contient l'attribut "tabBean" qui est un tableau d'un "bean"
    (les attributs de mon bean son "nom" et "id")

    j'aimerai lister les éléments de "tabBean" sous forme de checkBox dont la propriété serait "id"

    je pense qu'il faut utiliser les balises <logic:iterate> et <html:multibox> mais j'ai du mal à m'en sortir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <logic:iterate  id="item" name="monActionForm" 
    	property="tabBean">
         <tr> 
              <td>
                   <html:multibox property="id">
    	          <bean:write name="monActionForm" property="nom" />
                   </html:multibox>
              </td>
         </tr>         
    </logic:iterate>

  2. #2
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    Alors ca fait longtemps que j'ai pas fait de Struts, mais de memoire, il me semble que tu n'as fait qu'une erreur.
    Le champ id de logic:iterate créé un nouveau bean accessible jusqu'à sa balise de fin, sous le nom spécifié (le scope doit etre page, il me semble, si tu as besoin de le preciser) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <logic:iterate  id="item" name="monActionForm" 
       property="tabBean"> 
         <tr> 
              <td> 
                   <html:multibox name="item" property="id"> 
                       <bean:write name="item" property="nom" /> 
                   </html:multibox> 
              </td> 
         </tr>          
    </logic:iterate>
    Goah Sha Kree

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par jak0
    Alors ca fait longtemps que j'ai pas fait de Struts, mais de memoire, il me semble que tu n'as fait qu'une erreur.
    Le champ id de logic:iterate créé un nouveau bean accessible jusqu'à sa balise de fin, sous le nom spécifié (le scope doit etre page, il me semble, si tu as besoin de le preciser) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <logic:iterate  id="item" name="monActionForm" 
       property="tabBean"> 
         <tr> 
              <td> 
                   <html:multibox name="item" property="id"> 
                       <bean:write name="item" property="nom" /> 
                   </html:multibox> 
              </td> 
         </tr>          
    </logic:iterate>
    Il me semble que le multibox doit etre mappe vers un tableau (de String Long,...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <logic:iterate  id="item" name="monActionForm" property="tabBean"> 
         <tr> 
              <td> 
                   <html:multibox name="monActionForm" property="tabID"> 
                       <bean:write name="item" property="id" /> 
                   </html:multibox> 
              </td> 
         </tr>          
    </logic:iterate>
    ici apres soumission de ton form, le tableau tabID contiendra les id des beans que tu as cochés...

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  4. #4
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    Ca par contre je sais pas, je nai jamais utilisé le multibox, je repondait juste par rapport aux connaissances que j'ai...
    Merci de la precision.
    Goah Sha Kree

  5. #5
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    effectivement, j'utilise un multibox et il faut bien faire ce que Benjamin dit
    à savoir que vu ton code, dans ton ActionForm tu dois mapper avec selon moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String[] tabBean = {};
    + les accesseurs évidemment

    tiens nous au courant

  6. #6
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    pardon j'ai peut être posté un peu vite, je suis pas très réveillé
    essaie plutôt avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String[] tabID = {};
    désolé, je vais prendre 1 kf de plus

  7. #7
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Points : 73
    Points
    73
    Par défaut
    si j'ai bien compris, il faut passer que par des tableaux, au départ et à l'arrivée

  8. #8
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    voilà, c'est ça, au départ dans ton tableau, tu mets les cases que tu voudrais cocher (par exemple des ids : 2, 14, 25),
    quand le multibox va passer dessus, il les cochera par défaut

    et à l'arrivée, tu récupères des cases cochées *uniquement* dans le tableau

    n'hésites pas si c'est pas clair

  9. #9
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Points : 73
    Points
    73
    Par défaut
    mon tableau de départ peut contenir des objets ?

    comme ça j'ai la valeur de mes cases (les ids) et les libellés à côté.

  10. #10
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    ah ça, j'ai pas essayé, peut être après tout pourquoi pas, en faisant un tableau de tes objets, théoriquement ça semble possible.
    Intéressant d'ailleurs, si ça marche ça m'intéresse !

    Sinon je peux rien affirmer.

    Allez, tu tiens le bon bout, courage !

  11. #11
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Points : 73
    Points
    73
    Par défaut
    ça marche nikel !!!!
    j'utilise en entrée une liste d'objets (ça marcha aussi bien qu'un tableau d'objets)

    merci à tous

    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
     
    	<html:form action="/monAction">
     
    		<logic:iterate id="item" name="monForm"
    			property="listeProfils">
     
    			<tr>
    				<td width="30%">&nbsp;</td>
     
    				<td width="5%"><html:multibox property="tabIdProfil">
    					<bean:write name="item" property="idProfil" />
    				</html:multibox></td>
     
    				<td width="35%"><bean:write name="item" property="libellesProfil" />
    				</td>
     
    				<td width="30%">&nbsp;</td>
     
    			</tr>
     
    		</logic:iterate>
     
    ...

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

Discussions similaires

  1. [STRUTS] logic:iterate / html:input
    Par chimera dans le forum Struts 1
    Réponses: 12
    Dernier message: 13/10/2005, 11h11
  2. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    Réponses: 7
    Dernier message: 15/06/2004, 09h39
  3. [EJB2.1 Entity] [BMP] [Struts] Problème avec <logic:iterate>
    Par romain3395 dans le forum Java EE
    Réponses: 2
    Dernier message: 07/06/2004, 10h12
  4. [struts][iterate] problème logic:iterate avec un Vector
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 9
    Dernier message: 31/03/2004, 18h05
  5. [Struts] logic:iterate avec un Vector
    Par laurentb dans le forum Struts 1
    Réponses: 18
    Dernier message: 03/03/2004, 14h42

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