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 :

problème avec <logic:iterate>


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut problème avec <logic:iterate>
    bonjour,

    j'ai un bean poste contenant deux liste definedPosts et notDefinedPosts ayant la même longueur.

    je voudrai faire une iteration genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(int i=0; i<definedPosts.size(); i++) {
        afficher(definedPosts[i]);
        afficher(notDefinedPosts[i]);
    }
    pour avoir le size des deux listes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:size id="size" name="poste" property="definedPosts"/>
    après je ne sais pas comment faire pour avoir une iteration sur le size

    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
    Les listes definedPosts et notDefinedPosts sont des collections d'objets de quel type ? String ?

    Si tu utilises le logic:iterate, il n'est pas utile de gérer la taille de la collection.
    Struts itérera automatiquement sur la totalité de la collection.

    Si par exemple definedPosts est une collection de type String, pour afficher son contenu, il suffit de coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate name="poste" property="definedPosts" id="item">
       <bean:write name="item"/>
    </logic:iterate>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    merci pour la rapidité de ta reponse:

    le type des elements des deux listes est des objets (posteData) contenant eux aussi une liste values

    en gros mon iteration doit correspondre à cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(int i=0; i<definedPosts.size(); i++){
       for(int j=0; j<definedPosts.get(i).getPosteData().getValues().size(); j++) 
              print(definedPosts[i].getPosteData().getValues().get(j));
    for(int j=0; j<notDefinedPosts.get(i).getPosteData().getValues().size(); j++) 
              print(notDefinedPosts[i].getPosteData().getValues().get(j));
     
    }

  4. #4
    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
    Alors, si j'ai bien compris, il faudrait imbriquer deux logic:iterate comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <logic:iterate name="poste" property="definedPosts" id="posteData">
       <logic:iterate name="posteData" property="values" id="item">
          <bean:write name="item"/>
       </logic:iterate>
    </logic:iterate>

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    merci pour ta reponse

    la tu as affiché par exemple le première liste definedPosts, et pas les deux en même temps

  6. #6
    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
    Il suffit de dupliquer le code que je t'ai donné pour itérer sur la liste definedPosts et modifier la valeur de property en notDefinedPosts.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    merci pour ta reponse

    je crois que j'ai mal expliqué mon probleme?

    ce que je dois faire c' est iterer sur le definedPosts ou notDefinedPost puisqu'ils ont le même size. apres pour chaque posteData (beans se trouvant dans definedPosts et notDefinedPost) afficher la liste values (se trouvant dans chaque posteData) comme montrer dans la boucle for posté precedemment

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    toi ce que tu as fait c afficher la liste definedPosts et apres notDefinedPosts
    moi ce que je veux c afficher l'un apres l'autre leur contenu

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 82
    Points
    82
    Par défaut
    Salut !!!


    Je pense c'est mieux de merger les deux listes dans une seul dans ton action

    Merci.

  10. #10
    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
    Tu as raison, je suis complètement à côté de la plaque. Désolée.
    C'est dur le Lundi.

    Ce que tu souhaites est effectivement plus compliqué à résoudre.

    Il y a peut-être une solution en utilisant l'attribut indexId.

    definedPosts et notDefinedPosts ont la même taille mais qu'en est-il pour les deux listes values ?

    En tout cas, je suis d'accord avec lion.maroc, il serait beaucoup plus simple de faire un merge des deux listes dans l'Action.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    merci
    J'avais du mal à expliquer
    les values ont aussi le même size 10

  12. #12
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 82
    Points
    82
    Par défaut
    Donc là tu dois:

    1- D'abbord d'ajouter l'une de tes liste dans le scope page avec le tag <bean:define .... />

    2- Itérer sur une liste et utiliser l'indexId pour récuperer un élement de la liste definie par <bean:define .... />

    ou je pense le plus simple de merger les deux dans ton action.

    Merci.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    merci !!!

    je vais essayer de merger, je croix que c mieux

  14. #14
    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
    Citation Envoyé par al3alwa Voir le message
    les values ont aussi le même size 10
    definedPosts et notDefinedPosts ont-elles aussi une taille de 10 ?

  15. #15
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <bean:define id="notdefined" name="form" property="notDefinedsPosts"/>
    <logic:iterate name="form" property="definedPosts" id="defined" indexId="count">
          <bean:write name="defined[${count}]" property="posteData.values"/>
          <bean:write name="notdefined[${count}]" property="posteData.values"/>
    </logic:iterate>

    Si t'as pas encore mergé test ceci

  16. #16
    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
    Salut maxf1

    Moi, j'aurais plutôt coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <logic:iterate name="poste" property="definedPosts" id="definedPost" indexId="i">
       <bean:write name="poste" property="definedPosts[${i}].values[${i}]"/>
       <bean:write name="poste" property="notDefinedPosts[${i}].values[${i}]"/>
    </logic:iterate>
    mais cela ne peut fonctionner correctement que si les collections definedPosts, notDefinedPosts et values ont la même taille.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    merci beaucoup,

    je m'excuse j'etais un peu endormi
    en fait j'ai trouvé une solution fonctionnelle, j'ai oublié de mettre le tag resolu

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

Discussions similaires

  1. [Iterate] rowspan dynamique avec 3 logic:iterate imbriqués
    Par txomin.patalagoïty dans le forum Struts 1
    Réponses: 0
    Dernier message: 10/12/2013, 21h41
  2. Réponses: 2
    Dernier message: 24/04/2008, 10h14
  3. Problème avec Vector et Iterator
    Par boudincweole10 dans le forum Langage
    Réponses: 1
    Dernier message: 08/04/2007, 07h26
  4. Pb d'affichage avec des logic:iterate imbriqués
    Par mariemor64 dans le forum Struts 1
    Réponses: 8
    Dernier message: 20/07/2006, 15h44
  5. [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

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