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

Struts 1 Java Discussion :

Encapsuler 2 <bean:write>


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut Encapsuler 2 <bean:write>
    Salut à tous

    J'essaie vainement de trouver un moyen d'encapsuler 2 bean:write proprement, je m'explique :
    Je tente de mettre dans l'attribut property d'un bean:write une valeur provenant d'un autre bean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:write name="listeObjets" property="une propriété obtenue à partir d'un autre bean" />
    Cela ne me parait pas insurmontable, mais je n'y parvient pas

  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
    Tu dois pouvoir t'en sortir avec les EL.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    J'ai justement essayé de faire quelque chose dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:write name="objet" property="${valeur}"/>
    Mais là une erreur m'est renvoyée m'indiquant qu'aucune valeur n'a été trouvée pour la propriété ${valeur}. Apparament il n'interprète pas EL, un problème de version? Quelque chose que je n'ai pas inclu?

    Dans le cas où ce serait un problème de version, sachant que je ne peux pas mettre à jour, existe-t-il un autre moyen?

  4. #4
    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
    Je t'ai orienté sur les EL sans savoir réellement si ça peut fonctionner dans ton cas bien particulier.

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html-el:text name="objet" property="${valeur}"/>
    sans oublier de rajouter la directive taglib :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="/WEB-INF/tld/struts-html-el.tld" prefix="html-el" %>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    Avec un html-el text, un champ de saisie est rendu, or il ne me faut qu'un texte brut Je ne vois pas quelle autre balise pourrait convenir?

    J'essaie alors avec un scriptlet, mais là se pose un autre problème, je n'arrive pas à récupérer une variable déclarée à l'aide des taglib dans le scriptlet, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <logic:iterate id="elementHashMap" name="objets" property="maHashMap">
    	<bean:write name="elementHashMap" property="<%=elementHashMap.value%>" />
    //--> ne fonctionne pas, quelle est la synthaxe?
    </logic:iterate>

  6. #6
    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
    En fait, ton problème semble plus simple que ce que tu avais décrit au début de la discussion.

    Tu n'aurais pas par hasard une HashMap dont chaque value est un Bean et tu souhaiterais afficher une des propriétés de ce bean ?

    Dans ce cas, il suffit de coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate id="elementHashMap" name="objets" property="maHashMap">
    	<bean:write name="elementHashMap" property="value.proprieteDuBean"/>
    </logic:iterate>

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    Non, ce que je veux faire, c'est afficher une propriété d'un objet en utilisant la valeur d'un autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:write name="monObjet" property="unAutreObjet.property" />
    La HashMap intervient ici, car c'est la value de cette HashMap dont je veux me servir pour séléctionner la propriété d'un objet dans le bean:write

  8. #8
    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
    C'est donc bien ce que j'avais compris au départ.
    J'ai cru qu'on était parti dans une mauvaise direction.

    Pour l'instant, je n'ai pas trouvé d'autres idées.

  9. #9
    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
    Voici une solution avec la JSTL combinée avec les EL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value="${monObjet[unAutreObjet.property]}"/>
    J'ai oublié de préciser qu'il faudra remplacer le logic:iterate par un c:forEach pour que cela fonctionne.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    Ca fonctionne de cette façon, merci beaucoup d'avoir passé du temps sur mon problème! J'aurais dû mieux lire la doc du lien que tu m'a fourni

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

Discussions similaires

  1. [Struts]bean:write toString?
    Par MasterMic dans le forum Struts 1
    Réponses: 2
    Dernier message: 16/09/2004, 12h40
  2. [Struts][JSP] Format avec bean:write
    Par cowa dans le forum Servlets/JSP
    Réponses: 20
    Dernier message: 19/05/2004, 19h16
  3. [STRUTS] [JAVA] Affichage conditionnel de bean:write
    Par babylone7 dans le forum Struts 1
    Réponses: 6
    Dernier message: 29/04/2004, 17h20
  4. [Struts]<bean:write>
    Par djoukit dans le forum Struts 1
    Réponses: 7
    Dernier message: 28/04/2004, 15h03
  5. [STRUTS] bean:write
    Par lfournial dans le forum Struts 1
    Réponses: 3
    Dernier message: 30/01/2004, 10h58

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