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 :

Un tableau avec nb de colonnes et de lignes dans un HashMap


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut Un tableau avec nb de colonnes et de lignes dans un HashMap
    Bonjour,

    Je crée un tableau dont le nom des colonnes correspond aux clés d un HashMap et les valeurs dans les lignes au champ valeur de ma HashMap.

    Voici une modélisation simplifiée de ma structure pour que vous compreniez mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<MesObjets> 
     - date
     - hashMap clé/valeur

    Pour créer ma ligne de titre et ma première ligne je fais :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <% 
    [...]
    List<MesObjets> obj = liste.getMesObjets();
    Iterator itLignes = obj.iterator();
     
    if(itLignes.hasNext()){
    //je crée la ligne de titre + la première ligne
    %>
     
    <tr style="CenterWhiteLabel">
    <td>Date</td>
    <% //on crée la boucle pour les colonnes
    MesObjets maLigne = (MesObjets)itLignes.next();
    HashMap Map = maLigne.getListTextValeur();
    Set lesEntrees = Map.entrySet() ;
    Iterator itCol = lesEntrees.iterator() ;
    while ( itCol.hasNext()) {
    Map.Entry e=(Map.Entry) itCol.next();
    %>
    <td><%=e.getKey()%></td>
    <%
    }
    itCol.remove();
    %>
    </tr>
    <!-- premiere ligne -->
    <tr><td><%=maLigne.getDate()%></td>
    <%
    //pour la premiere ligne de valeurs
    Iterator itCol2 = lesEntrees.iterator() ;
    while ( itCol2.hasNext()) {
    Map.Entry e=(Map.Entry) itCol2.next();
    %>
    <td><%=e.getValue()%></td>
    <%
    }
    itCol2.remove();
    %>
    </tr>
    Lors de l'affichage rien ne va.
    J'ai juste une colonne nommée date qui apparait avec dans la première ligne la date. Mais mes colonnes "dynamiques" n'apparaissent pas.
    Cependant je suis sure d avoir les bonnes valeurs dans les objets e car en mode debug j ai bien les bonnes valeurs dans Key et Value lorsque je parcours les while.


    Merci d avance de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    En fait a priori j ai un souci dans le parcours de mon hashmap.

    En effet, voici comment je l'ai rempli ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Key    -    Value
    ColonneA   -  1
    ColonneB   -  2 
    ColonneC   -  3 
    ColonneD   -  4 
    ColonneE   -  5
    ColonneF   -  6 
    ColonneG   -  7 
    ColonneH   -  8
    Et voici ce que je trouve dans mon fichier de log :
    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
     
     
    <tr style="CenterWhiteLabel">
    <td>Date</td>
    <td>ColonneD</td>
    <td>ColonneC</td>
    <td>ColonneB</td>
    <td>ColonneA</td>
    </tr>
    <tr>
    <td>Mon Aug 04 12:34:28 CEST 2008</td>
    <td>8</td>
    <td>7</td>
    <td>6</td>
    </tr>
    J'ai donc plusieurs problèmes :
    1. je ne comprends pas pourquoi ma HashMap est tronquée dans son parcours
    2. je ne comprends pas poourquoi il ne la parcourt pas toujours dans le même sens
    3. mon tableau ne s'affiche pas correctement et cela est certainement du en parti au fait que j ai pas le même nombre de colonnes pour chaque ligne

  3. #3
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    pourquoi le "itCol.remove();" ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Je pense qu il ne sert à rien.
    Je l avais au départ mis car j utilisais la même variable pour les deux boucles. Mais ayant changé ma façon de faire je peux le supprimer.

  5. #5
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Il serait peut-être bon de vérifier le contenu de maLigne.getListTextValeur(); en l'ajoutant dans la trace

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    oui c est ce que je vais faire ...
    Mais j ai eu un pb de memoire du coup je viens de modifier mon parametrage Tomcat.

    Depuis que j ai supprimer les remove j ai 4 valeurs de chaque coté mais c est pas pour cela que quelque chose s affiche !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Bon, maintenant j ai bien ce qu il faut dans mes variables par contre, la hashMap n apparait pas triée comme je l avais initialisée. Je ne comprends pas vraiment pourquoi et comme il faut que mes colonnes soient triées la colonneA avant la colonneB je suis un peu embetée !

    Niveau affichage, j ai toujours que la date qui s affiche de toute façon

    Voici ce que j ai dans les logs :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Aug 4, 2008 3:05:56 PM org.apache.myfaces.renderkit.html.HtmlGridRendererBase renderChildren
    WARNING: PanelGrid locationTreeId:0:3:_id7 has not enough children. Child count should be a multiple of the columns attribute.
    Aug 4, 2008 3:05:56 PM org.apache.myfaces.taglib.UIComponentBodyTagBase doEndTag
    WARNING: Component with id 'myFormId:data' (org.apache.myfaces.taglib.html.HtmlPanelGroupTag tag) and path : {Component-Path : [Class: org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: /pages/oil.jsp][Class: javax.faces.component.html.HtmlForm,Id: myFormId][Class: javax.faces.component.html.HtmlPanelGrid,Id: _id14][Class: javax.faces.component.html.HtmlPanelGroup,Id: data]}renders it's children, but has embedded JSP or HTML code. Use the <f:verbatim> tag for nested HTML. For comments use <%/* */%> style JSP comments instead of <!-- --> style HTML comments.
     BodyContent:
    <table style="width:100%">
    <tr style="CenterWhiteLabel">
    <td>Date</td>
    <td>ColonneD</td>
    <td>ColonneH</td>
    <td>ColonneE</td>
    <td>ColonneC</td>
    <td>ColonneB</td>
    <td>ColonneG</td>
    <td>ColonneA</td>
    <td>ColonneF</td>
    </tr>
     
    <tr>
    <td>Mon Aug 04 15:05:55 CEST 2008</td>
    <td>4</td>
    <td>8</td>
    <td>5</td>
    <td>3</td>
    <td>2</td>
    <td>7</td>
    <td>1</td>
    <td>6</td>
    </tr>
    </table>

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

Discussions similaires

  1. Tableau avec image et colonne de texte
    Par demu73 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 21/02/2015, 23h36
  2. [2012] creation dun tableau avec condition sur colonne est index
    Par Lafleur2012 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/03/2014, 10h03
  3. [WD14] Alimentation d'une colonne d'une tableau avec une autre colonne
    Par Deep Lowee dans le forum WinDev
    Réponses: 2
    Dernier message: 23/01/2013, 17h44
  4. [MySQL] comment afficher un tableau avec tri par colonne ?
    Par tut dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/04/2011, 17h19
  5. Tableau avec beaucoup de colonnes
    Par night59 dans le forum BIRT
    Réponses: 5
    Dernier message: 01/07/2007, 11h48

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