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

Servlets/JSP Java Discussion :

JSTL affiche la même val de l'Arraylist


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 149
    Points : 112
    Points
    112
    Par défaut JSTL affiche la même val de l'Arraylist
    Bonjour à tous,

    mon problème est le suivant :

    J'ai une méthode qui retourne une ArrayList de type <monObjet>, je sais affiché le contenu de cette liste lorsque je la récupère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ArrayList <MonObjet> liste = new ArrayList <MonObjet>();
    liste = new LectureDB().getListObjet();
     for (MonObjet element: liste) {
                out.println("nom: " + element.getNom());
                out.println("prenom: " + element.getPrenom());
                out.println("tel: " + element.getTelephone());
                out.println("adresse: " + element.getAdresse());
                out.println("email: " + element.getEmail());
      }
    Le soucis c'est lorsque je veux récupérer la liste et l'afficher dans un tableau dans une JSP via JSTL, j'ai la même ligne qui s'affiche à savoir le dernier élément du tableau...

    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
     
     <c:set var="liste" value="${listeDesObjets}" />
                                                <c:forEach items="${liste}" var="i"  varStatus="loop">
                                                    <tr>                                     
                                                        <%--<td> ${loop.count} </td>     --%>
     
                                                        <td><c:out value="${i.prenom}"></c:out> <br></td>
                                                        <td><c:out value="${i.nom}"></c:out> <br></td> 
                                                        <td><c:out value="${i.login}"></c:out> <br></td> 
                                                        <td><c:out value="${i.password}"></c:out> <br></td>
                                                        <td><c:out value="${i.adresse}"></c:out> <br></td>
                                                        <td><c:out value="${i.permission}"></c:out> <br></td>
                                                        <td><c:out value="${i.telephone}"></c:out> <br></td>
                                                        <td><c:out value="${i.email}"></c:out> <br></td>
                                                        <td><c:out value="${i.birthday}"></c:out> <br></td>
     
                                                    </tr>
                                                </c:forEach>

  2. #2
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Slt,

    comment remplis tu ta listeObject?

    ++

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 149
    Points : 112
    Points
    112
    Par défaut
    Merci de répondre.

    Dans une boucle FOR, j'instancie un objet et l'ajoute à la liste avec la méthode ADD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ArrayList<Objet> liste = new ArrayList<Objet >();
    Objet monObjet = new Objet ();
     
    for (...)
    {
       monObjet.getNom();
       monObjet.getPrenom();
       ...
       liste.add(monObjet);
    }
     
    return liste;
    Lorsque je récupère la liste et l'affiche en console, il m'affiche bien tous les élements de la liste ...

    Donc en résumé, j'ai une méthode qui retourne une liste d'objet.
    Lorsque je l'affiche en console c'est bon et lorsque je l'affiche dans un tableau dans une JSP via les JSTL, cela m'affiche à chaque fois la même ligne (le contenu du dernier élément de la liste)
    Cela me l'affiche autant de fois qu'il y a d'éléments dans la liste (il y a 10 éléments dans la liste, il m'affiche le dernier élément 10 fois)

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 149
    Points : 112
    Points
    112
    Par défaut
    Problème résolu merci !

    En effet, je faisais l'instance de mon objet en dehors de la boucle et donc il utilisait la même instance pour le rajouter dans la liste.
    Je l'ai donc mis à l'intérieur et ça fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ArrayList<Objet> liste = new ArrayList<Objet >();
     
    for (...)
    {
       Objet monObjet = new Objet ();
       monObjet.getNom();
       monObjet.getPrenom();
       ...
       liste.add(monObjet);
    }

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 28/05/2007, 17h55
  2. Réponses: 3
    Dernier message: 30/04/2007, 14h57
  3. Une cellule sans contenu mais affichée quand même?
    Par petozak dans le forum Balisage (X)HTML et validation W3C
    Réponses: 30
    Dernier message: 30/08/2006, 18h19

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