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 :

Double itération dans un meme tableau


Sujet :

Struts 2 Java

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut Double itération dans un meme tableau
    J'ai un objet A qui peut avoir plusieurs objets B.(object = table)

    J'aimerais a la fois lister les objets A et en meme temps, pour chaque A, les objets B qui sont en relation et cela dans un meme tableau.

    Comment m'y prendre ?

    J'ai essayé en imbriquant les listes mais sans succes.

    merci

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Points : 379
    Points
    379
    Par défaut
    Si j'ai bien compris tu veux avoir un tableau qui contient à la foi les objet de type A et ceux de type B style :

    - a1 contient b1 et b2
    - a2 contient b3, b4 et b5
    - le tableau se compose comme cela [a1, b1, b2, a2, b3, b4, b5]

    ce code devrait le faire :

    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
     
    int length = 0;
    int index = 0;
    A[] tableauDeA = {a1, a2};
    for (A a : tableauDeA) {
        length++;
        for (B b : a.tableauDeB) {
            length++;
        }
    }
    Object[] liste = new Object[length];
    for (A a : tableauDeA) {
        liste[index++] = a;
        for (B b : a.tableauDeB) {
            liste[index++] = b;
        }
    }

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut
    je pense que je me suis mal exprimé.

    je veux:
    - tout d'abord afficher grace un iterator, dans une page jsp, tous les objets A enregistrés dans ma base, je fais quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <s:iterator value="objetAList">  //je construis ma liste objetAList dans mon action
    <tr>
                            <td><s:property value="id" /></td>
    <tr>
    </s:iterator>
    Jusque la pas de probleme.

    Ce que j'aimerai ensuite, c'est inclure un sous tableau pour chaque objet A. ce sous tableau représantant tous les objets B reliés a A.
    Dans mon action je suis obligé de faire des sous listes, du moins je pense.

    Donc au final dans mon jsp :


    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
     
     
    <s:iterator value="objetAList">  //je construis ma liste objetAList dans mon action
    <tr>
                            <td><s:property value="id" /></td>
    <td>
    <table>
     
    <s:iterator value="je ne sais pas quoi mettre">
     
    <tr><td><s:property value="je ne sais pas non plus quoi mettre></td></tr>
    </table>
    </s:iterator>
    <tr>
    </s:iterator>
    C'est dur a expliqué ...

    Suis je clair?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Bah c'est facile :

    Une liste d'objets A qui contiennent :
    - un id
    - ...
    - une liste d'objets B qui contiennent
    - un id
    - ...

    Tu fais un premier iterator sur ta liste d'objets A, et dedans tu fais un 2ème iterator en utilisant le nom de ta liste d'objets B.

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut
    le nom de ta liste d'objets B.
    A quoi correspond le nom ? au nom que j'ai donné à l'id?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Déclaration des types :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class mySlaveObjectType {
    private String id;
    ...
    }
     
    public class MyMasterObjectType {
    private String id;
    ...
    private mySlaveObjectType list;
    }
    Construction d'une liste d'objets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    List<mySlaveObjectType> mySecondList = new List<mySlaveObjectType>()
    mySlaveObjectType myTestData = new mySlaveObjectType();
    myTestData.setId("tata");
    mySecondList.add(myTestData);
     
    List<MyMasterObjectType> myFirstList = new List<MyMasterObjectType>();
    MyMasterObjectType myTestData2 = new MyMasterObjectType();
    myTestData2.setId("toto");
    myTestData2.setList(mySecondList);
    myFirstList.add(myTestData2);
    Iterators dans ta jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <s:iterator value="myFirstList">
    <tr>
            <td><s:property value="id" /></td>
            .....
                  //iterator sur la 2eme liste
                  <s:iterator value="list">
                    <tr>
                         <td><s:property value="id" /></td>
                          .....
                    <tr>
                   </s:iterator>
    <tr>
    </s:iterator>
    A+

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

Discussions similaires

  1. Combiner deux tableaux ou plus dans le meme tableau
    Par Chefcou dans le forum Général Python
    Réponses: 3
    Dernier message: 28/04/2012, 15h49
  2. [MySQL] Double boucle dans un tableau
    Par arthuro45 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/08/2009, 18h56
  3. [2.1.2] Regrouper des données dans un meme tableau
    Par stratocasters dans le forum BIRT
    Réponses: 15
    Dernier message: 12/11/2008, 14h00
  4. Double affichage OpenGL dans une meme fenetre
    Par greghass dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/11/2006, 22h57
  5. Réponses: 5
    Dernier message: 10/08/2006, 12h56

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