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 :

[jsp][struts] Acces au bean d'un <logic:iterate>


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [jsp][struts] Acces au bean d'un <logic:iterate>
    Bonjour,

    j'aimerais savoir quelle est la syntaxe a utiliser lorsque dans l'exemple suivant je veux acceder au bean "Haricot" defini par mon <logic:iterate> dans le bloc de code delimite par <% %>, c'est a dire sans utiliser les taglibs.
    Les differentes documentations que j'ai consultees (J2EE Tutorial de sun, plusieurs eBooks, la doc de struts) ne m'ont pas vraiment eclairees sur le sujet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <logic:iterate name="sacDeHaricots" id="Haricot"
    ...
    <% /* Je veux acceder a Haricot ici */ %>
    ...
    </logic-iterate>
    Merci par avance.

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    En admettant que ton bean 'Haricot' a un attribut 'attribute1', essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%=Haricot.getAttribute1()%>
    Pourquoi ne veux-tu pas utiliser le taglib "bean:write" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:write name="Haricots" property="attribute1"/>

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    En fait, par meconnaissance du sujet principalement - je travaille sur mon premier projet jsp/struts - j'ai ete ammene (en fait moi ou les membres de mon groupe de projet) a faire des choses peu orthodoxes.

    En l'occurence dans le cas present, le bean est un HashMap (je ne vous detaillerai pas les raisons obscures qui nous ont poussees a faire ca plutot que d'utiliser un bel objet, ca vaudrait un roman).

    Je n'utilise pas la taglib bean dans ce cas car je fais un affichage de planning hedbomadaire et j'ai besoin de manipuler directement mon bean (notamment pour faire d'autres boucles basees sur ses proprietes, changer leurs valeurs, etc).

    Encore une fois je sais que c'est infame, mais c'est promis m'sieur le juge, je le referai plus

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Donc si je comprends bien, ton objet Haricot est un élément de ta HashMap.
    C'est donc un objet de type Map.Entry !
    http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.Entry.html

    J'en déduis donc que pour accéder à ton objet il faut écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%=Haricot.getValue()%>

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Points : 107
    Points
    107
    Par défaut
    Essaie de faire la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%Haricot monHaricot = (Haricot) pageContext.getAttribute("Haricot");%>
    A+

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Rha je me suis encore mal exprime (deciement...)
    Pour faire clair, Haricot est de type HashMap.

    J'y accede donc par Haricot.get(...) ?

  7. #7
    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,

    Pour lister recursivement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <logic:iterate name="sacDeHaricots" id="Haricot">
     
    	<logic:iterate name="Haricot" id="entry">
    		<bean:write name="entry" property="key"/>
    		<bean:write name="entry" property="value"/>
    	</logic:iterate>
     
    </logic:iterate>
    Tu peux y acceder directement en java à l'intérieur de l'iterate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate name="sacDeHaricots" id="Haricot">
    	<%=Haricot%>
    </logic:iterate>
    seulement Haricot est un Object donc tu dois caster :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <logic:iterate name="sacDeHaricots" id="Haricot">
    	<%java.util.Map mapHaricot = (java.util.Map) Haricot;%>
    	<%= mapHaricot.get(xxx) %>
    </logic:iterate>
    ou plus simple, directement dans le tag iterate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate name="sacDeHaricots" id="Haricot" type="java.util.Map">
    	<%= Haricot.get(xxx) %>
    </logic:iterate>
    a++

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup.

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

Discussions similaires

  1. [Struts 1.3] Alterner la couleur avec <logic:iterate>
    Par valkeke dans le forum Struts 1
    Réponses: 5
    Dernier message: 19/02/2010, 15h49
  2. Accès à un bean depuis jsp
    Par pippou dans le forum JSF
    Réponses: 4
    Dernier message: 24/07/2006, 15h33
  3. [JSP][Struts]Liste déroulante et bean
    Par prokcnet dans le forum Struts 1
    Réponses: 10
    Dernier message: 23/03/2006, 16h16
  4. Réponses: 8
    Dernier message: 28/07/2005, 13h39
  5. [Struts][JSP] Sous-propriété de bean non rapatriée
    Par cowa dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/05/2004, 10h25

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