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

JSF Java Discussion :

Affichage d'un TreeMap


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut Affichage d'un TreeMap
    Bonjour à tous,

    Je voudrais savoir si il est possible d'afficher le contenu d'un TreeMap dans une JSF. J'avais dans l'idée de gérer l'affichage à l'aide d'une <rich:dataTable> en traitant le TreeMap comme une liste (suite à la lecture d'un post dans un forum que je n'ai pas réussi à retrouver avant de poster ici) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:rich="http://richfaces.org/rich"
    ...
     
    <rich:dataTable id="tbrefListDataTable" var="tM" value="#{tbrefModelList}"	>
      <rich:column>
         <h:outputText value="#{tM.key}" />
      </rich:column>
      <rich:column>
         <h:outputText value="#{tM.value}" />
      </rich:column>
    </rich:dataTable>
    tbrefModelList étant un TreeMap non vide

    mais visiblement ce n'est pas la bonne méthode, rien ne s'affiche.

    Si quelqu'un connait un moyen d'afficher les éléments d'un TreeMap dans une page, je suis preneur d'idées!


    J'ai pensé à un moyen d'afficher ce que je souhaite en retournant une liste d'objet de type MonObjet:

    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
     
    public class MonObjet{
     
    private String key;
    private String value;
     
     
    public String getKey()
    {
    return key;
    }
     
    public String getValue()
    {
    return value;
    }
     
    }
    Je n'ai pas encore testé mais je ne vois pas de raisons pour que cela ne fonctionne pas MAIS la consigne de mon chef de projet est de gérer cela avec un TreeMap...

    Merci d'avance et bonne journée

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    dataTable ne prend pas les Map,
    tu peux utiliser l'itérateur de JSTL ou celui de Facelets pour parcourir la Map

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <c:forEach/>
    <ui:repeat/>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut
    Merci beaucoup!

    En effet cela fonctionne très bien avec <c:foreach/>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <ul>
      <c:forEach items="#{tbrefModelList}" var="tM">
        <li><h:outputText value="#{tM.key}" /></li>
        <li><h:outputText value="#{tM.value}" /></li>
      </c:forEach>
    </ul>

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut
    J'ai une autre question:

    DataTable prend il en charge les Set<Object>?

    Merci d'avance

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    un Set fait partie de l'interface Collection comme List, normalement, ça doit marcher.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut
    Bonjour,
    je m'insère dans la discussion...

    J'ai testé avec le Set et dans ce cas, il m'est impossible d'acceder aux propriétés de la liste...

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <rich:dataTable id="objetData" var="sousObjet" value="#{objet.listeDeSousObjets}" >
              <f:facet name="header">
                        <h:outputText value="Liste des sous-objets" />
              </f:facet>
     
              <rich:column>
                        <h:outputText value="#{sousObjet.nom}" />
              </rich:column>
    </rich:dataTable>
    la liste de sous objets est une collection de type Set et j'ai une erreur comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.faces.FacesException: javax.el.PropertyNotFoundException: /WEB-INF/flows/details-objets-view.xhtml @43,48 value="#{sousObjet.nom}": Property 'nom' not found on type java.util.HashSet
    alors que mon objet est comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Objet implements Serializable {
     
    private Set<SousObjet> objetCollection = new LinkedHashSet<SousObjet>();
     
    public Set<SousObjet> getObjetCollection() {
    		return fonctionCollection;
    	}
     
    	public void setObjetCollection(Set<SousObjet> objetCollection) {
    		this.objetCollection = objetCollection;
    	}
    }
    Si vous avez une idée pour pouvoir utiliser le dataTable avec Set ca me ferai bien plaisir...

    Merci d'avance...

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

Discussions similaires

  1. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  2. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00
  3. Affichage de documents PDF
    Par Dajon dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/10/2002, 11h36
  4. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43
  5. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00

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