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

Taglibs Java Discussion :

Bean dans une hashmap [JSTL]


Sujet :

Taglibs Java

  1. #1
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut Bean dans une hashmap
    Bonjour,

    Je place dans ma session un ensemble de bean dans une hashmap.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class MyBean  {	
      private String type;
    ..
    Et l'ajout de bean dans ma hashmap avec comme clé le localisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    infHmap = (HashMap) request.getSession().getAttribute("InfHmap");
     
    // Rajoute le record dans le Bean en session
        infHmap.put(localisant, MyBean);
    Dans le debugg je retrouve bien ma HashMap correctement renseignée.

    Cependant dès que je veux afficher l'infomaation dans ma JSP cela ne marche plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <c:forEach items="${InfHmap}" var="cp">
    <tr>
    	<td class="gridcell">
    		<c:out value="${cp[key].type}" />
    	</td>
    	<td class="gridcell">
    		<c:out value="${cp.key}" />
    	</td>
    Cela m'affiche bien la clé mais pas la valeur de mon Bean.

    Merci pour votre aide.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <c:out value="${cp.value}" />

  3. #3
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Il me met l'adresse de mon Bean en mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    com.dstm.custom.cesta.struts.beans.MyBean@10d78ec

  4. #4
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Ben surcharge la méthode toString de ton bean pour ne pas qu'il appelle celle par défaut

  5. #5
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Je ne suis pas un expert en java
    Je ne comprend pas ce que tu veux dire par surcharger ma méthode string de mon Bean (Mon bean a plusieurs attributs).
    Et pourquoi je devrais faire cela ? en JSTL ce n'est pas possible de récupérer les valeurs de mon Bean provenant d'un HashMap ?

    Merci

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par cosmos38240
    Je ne comprend pas ce que tu veux dire par surcharger ma méthode string de mon Bean (Mon bean a plusieurs attributs).
    ${cp.key} te renvoit la clef de ta Map, et [b]${cp.value} sa valeur (ton bean). Mais dans ce cas comme tu n'indiques aucun attribut particulier de ton bean, c'est la méthode toString() (hérité de Object) qui est utilisé pour représenter ton bean, qui par défaut affiche le nom complet de la classe suivi de son identifiant unique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.dstm.custom.cesta.struts.beans.MyBean@10d78ec
    Si tu veux accéder à l'attribut type de ton bean, il suffit donc de faire :
    Cf : JSTL c:forEach

    Il faut bien sûr que la méthode accésseur correspondante getType() soit présente dans ton bean...

    a++

  7. #7
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Merci beaucoup pour ces explications.

    Mon Bean possède bien les propriétés Get et Set pour tous les attributs.

    En fait ce que je ne comprenais pas c'étais comment accéder aux propriétés du Bean en JSTL (plus le fait de la méthode string hérité de Object).
    Tu m'as donné la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ${cp.value.type} // Type étant l'attribut
    Ca marche.

    Merci

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Juste un dernier détail pour l'explication...

    Lorsqu'on parcours une Map on utilise à chaque itération un objet Map.Entry, (cp dans ton cas) et donc :

    est équivalent àest équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     cp.getValue().getType();
    a++

  9. #9
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. clés et valeurs à null dans une HashMap typée
    Par Djakisback dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 06/06/2006, 13h04
  2. Acces aux attributs d'un bean dans une jsp
    Par mariemor64 dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/06/2006, 10h32
  3. Récuperer un bean dans une action Struts
    Par ksavieras dans le forum Struts 1
    Réponses: 4
    Dernier message: 23/10/2005, 14h55
  4. [Struts] [HashMap] passage d'un bean dans une HashMap
    Par cosmos38240 dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/09/2005, 16h05
  5. [Struts] [JavaBean] Deux beans dans une Action
    Par jak0 dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/05/2005, 16h02

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