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 :

gerer les elements de arraylist dans une jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 55
    Par défaut gerer les elements de arraylist dans une jsp
    Bonjour
    je récupère un liste,de mon contrôleur et je veux gerer ma liste.
    c'est a dire l'afficher sous forme de tableau.
    lesLibelles c'estma liste de libelle.
    lesNbr c'est ma liste de nombre .

    et je veux afficher les 4 premieres valeur de ma liste dans ma premiere ligne
    puis les 4 autres dans la 2ème ligne etc

    dans mon controleur j'ai

    modele.put("nbrColonne",colonne.size());//nombre de colonne
    modele.put("lesLibelles",lesLibelles);//liste de libelle
    modele.put("lesNbr",lesNbr);//liste des nombres



    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
     
    <c:forEach items="${lesLibelles}"  var="lib" >
    	<tr>
    		 <td>					
    			${lib}					
    		</td>
     
                 <c:forEach items="${lesNbr}"  var="nbr" >
     	               <td>					
    		          ${nbr}					
    	               </td>
     
                  </c:forEach>
     
    	</tr>
    </c:forEach>
    je veux avoir ce modèle
    c'est un tableau sous forme de matrice

    libelle1- nbr1 - nbr2 - nbr3 - nbr4
    libelle2- nbr5 - nbr6 - nbr7 - nbr8
    libelle3- nbr9 - nbr10- nbr11-nbr12
    libelle4- nbr13-nbr14-nbr15-nbr16

    et qd j'execute cette JSP
    je tombe sur ça
    libelle1-nbr1 - nbr2 - nbr3 - nbr4 -nbr5 - ...nbr15 - nbr16
    libelle2-nbr1 - nbr2 - nbr3 - nbr4 -nbr5 - ...nbr15 - nbr16.
    libelle3-nbr1 - nbr2 - nbr3 - nbr4 -nbr5 - ...nbr15 - nbr16
    libelle4-nbr1 - nbr2 - nbr3 - nbr4 -nbr5 - ...nbr15 - nbr16

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Par défaut
    Bonjour,

    C'est normal, dans ta JSP tu fait un for each de ta liste entière de nombre, null part tu défini que tu veux que les 4 premier éléments.

    Une solution serait de faire un tableau de tableau ( une matrice)
    et la tu pourrai gerer un for each d'une liste de 4 éléments, mais ça implique des changements dans ta JSP pour la boucle for initial.

    David.

  3. #3
    Membre averti
    Profil pro
    Développement, conception technique et qualité de code
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développement, conception technique et qualité de code

    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Bonjour,

    je ne maîtrise pas la jstl (je laisse les pros du truc corriger les exemples qui suivent), mais vous avez plusieurs possibilités:

    1. conditionner l'affichage des nombres par rapport à l'indice de boucle. Vous devriez regarder du côté de l'attribut varStatus de for-each
    Ca devrait donner un truc de ce genre (non testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <c:forEach items="${lesLibelles}"  var="lib" varStatus="libCounter">
    	<tr>
    		<td>${lib}</td>
       <c:forEach items="${lesNbr}"  var="nbr"  varStatus="nbCounter">
          <c:choose>
              <c:when test="${nbCounter.count >= 4 * libCounter.count && nbCounter.count < 4 * (libCounter.count+1)}">
    		<td>${nbr}</td>
              </c:when>
          </c:choose>
       </c:forEach>
    	</tr>
    </c:forEach>
    2. supprimer la boucle sur les nombres et récupérer en dur les 4 nombres qui vont bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <c:forEach items="${lesLibelles}"  var="lib" varStatus="libCounter">
    <tr>
    	<td>${lib}</td>
    	<td><c:out value="${lesNbr[libCounter]}"/></td>
    	<td><c:out value="${lesNbr[libCounter+1]}"/></td>
    	<td><c:out value="${lesNbr[libCounter+2]}"/></td>
    	<td><c:out value="${lesNbr[libCounter+3]}"/></td>
    </tr>
    </c:forEach>
    3. changer le modèle (comme le suggère davly) pour avoir une liste d''objet de présentation dédié' correspondant à une ligne (ex: UneLigne {String libelle; List nbrs} )
    le reste se fait tout seul.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 55
    Par défaut
    C'est bon j'ai trouvé la réponse si ça intéresse quelqu'un, c’était juste un petit exercice mathématique, fallait trouvé la bonne équation.

    modifier la boucle en lui donnant les bonnes variables

    <c:forEach begin="${(i*((nbrColonne-1)+1))}" end="${(i*((nbrColonne-1)+1))+(nbrColonne-1)}" var="j">
    <td >
    ${lesNbr[j]} </td>

Discussions similaires

  1. arraylist dans une jsp
    Par Bobette dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 30/03/2012, 17h16
  2. [AC-2003] Lister les elements d’un groupe dans une requete:
    Par Bonero dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 07/07/2011, 13h08
  3. [JSTL] Lire une ArrayList dans une JSP en utilisant ForEach
    Par ScReeeN dans le forum Taglibs
    Réponses: 7
    Dernier message: 23/07/2010, 11h46
  4. Arraylist dans une jsp
    Par raimus88 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/11/2009, 09h01
  5. [JSF]Affichage de beans depuis une ArrayList dans une JSP
    Par adrien.nicolet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 05/06/2006, 17h33

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