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 : traitement de deux arrayList avec boucle c:forEach


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut JSTL : traitement de deux arrayList avec boucle c:forEach
    Bonjour,

    Ne connaissant pas JSTL je galère pour gerer deux listes dans une boucle forEach

    voilà comment j'ai codé;
    Dans mon premier programme j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       private List<String> myList2 = new ArrayList<String>();
       private List<String> myList = new ArrayList<String>();
    Puis j’alimente mes deux listes.
    La première liste contient un lien effectif et la deuxième le nom du lien affiché
    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
     
       myList.clear();
       myList2.clear();
     
     
       for(int i = 1; i < contrat.length; i++){
            String url = contrat[0]+contrat[i];
    	String lienAffiche  = contrat[i];
     
    	myList.add(url);
    	myList2.add(lienAffiche);
       }
     
    pageContext.setAttribute("myList", myList,  PageContext.SESSION_SCOPE);
    pageContext.setAttribute("myList2", myList2, PageContext.SESSION_SCOPE);

    Ensuite, j'ai mon autre jsp qui contient:

    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
     
     <table>
     
                    <c:forEach items="${myList}" var="item">
                     <tr>
                        <td>
     
                        <a href="<c:out value="${item}" />">
                           <c:out value='${item}'/><br>
     
     
                        </td>
                        </tr> 
                     </c:forEach>
     
    		</table>

    Ça fonctionne par ce que j'ai exploité que la liste myList mais en fait je voudrais afficher la valeur de myList2 et lorsque l'utilisateur clique sur le lien ça prend l'url de myList. En fait le lien affiché à l'utilisateur correspond à un autre lien appelé.
    bref j'aurai voulu quelque chose du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     <a href="<c:out value="${item} de la liste 2" />">
                           <c:out value='${item} de la liste 1'/><br>

    Avez-vous une idée ?
    merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    à mon humble avis, le problème se situe en amont plutôt que dans la JSP, il faudrait que tu n'es qu'une seule liste.
    Pour cela, au lieu d'avoir 2 listes de String tu pourrais te créer un Objet avec comme attributs un label et une URL et dans ta jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="<c:out value='${item.label}' />">
    <c:out value='${item.url}'/><br>

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    par contre je peux avoir plusieurs liens donc il pense que je dois garder le forEach.
    j'ai ajouté le foreach mais ca plante

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    par contre je peux avoir plusieurs liens donc il pense que je dois garder le forEach.
    j'ai ajouté le foreach mais ca plante

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    Ca y ca fonctionne. J'avais oublié qu'il faillait que je garde la notion de liste sachant que ca parait obligatoire pour un for each. j'ai donc fait une liste qui contient des objets.
    Ca fonctionne.

    Merci beaucoup de m'avoir mis sur la voie

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    Fausse joie, en fait ça boucle bien autant de fois que de lien mais ca affiche plusieurs fois que le dernier lien.

    Ca donne quelque chose comme

    liste des contrat
    lien contrat n° 3
    lien contrat n° 3
    lien contrat n° 3

    au lieu de
    lien contrat n° 1
    lien contrat n° 1
    lien contrat n° 3

    (je sais encore)

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    désolé, ne pas tenir compte de mon dernier message. ca fonctionne effectivement bien. mon pb venait de mon java mal codé.

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

Discussions similaires

  1. Comment créer un array à deux dimensions avec une boucle
    Par m4riachi dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/05/2015, 16h17
  2. Parcourir deux tableaux avec une seule boucle
    Par Merevinh dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2013, 13h50
  3. Remplir mon arrayList avec une boucle for?
    Par kolann dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/11/2010, 12h04
  4. Réponses: 2
    Dernier message: 20/10/2010, 11h49
  5. Tableaux à deux dimension avec ArrayList
    Par demcoul dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 25/09/2009, 17h57

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