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 :

Récuperer la valeur d'un attribut [Custom Tags]


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Par défaut Récuperer la valeur d'un attribut
    Bonjouts tout le monde,

    Je suis entraint de dévelepper ma propre tagLib, et je veux récuperer la valeur d'un attribut dans bean dont je ne connait que le nom du bean son scope et la nom de l'attribut.

    un exemple simple:
    <tag:maTag name="bean" property="attribut" scope="session">
    cette tag doit afficher la valeur de l'attribut 'attribut' du bean 'bean' qui se trouve dans la session

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 26
    Par défaut
    C'est à dire que tu veux donner à property une valeur que tu as mis en attribut dans la session ?

    Pour faire ça c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tag:montag property="<%=(String)session.getAttribute("attribut") %>"
    Mais je suis d'avoir bien compris ce que tu voulais !

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Par défaut
    Merci pour votre réponse, mais c'est pas ce que je veux, je vous donne un exemple plus concret:

    regerde ce code :

    <logic:iterate id="personne" name="personnes">
    <bean:write name="personne" property="nom" /><br />
    </logic:iterate>

    à la tag write on donne un objet bean 'personne' et l'attribut 'nom' est dans la class associé à la tag il est capable de récuperer la valeur de l'attribut nom du bean personne, ce que je veux moi c'est comment il font ca dans la class.

    Merci

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,



    Pour récupérer le bean ils doivent utiliser pageContext.findAttribute() ou pageContext.getAttribute().

    Et pour récupérer les propriétés il faut utiliser la réflection ou des API comme Jakarta Commons BeanUtils...




    Maintenant si tu utilises les JSP 2.0 tu peux utiliser les EL pour cela, et remplacer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tag:maTag name="bean" property="attribut" scope="session">
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tag:maTag value="${sessionScope['bean'].attribut}"/>
    Ou directement ceci (qui recherchera dans tous les scopes par ordre croissant page->request->session->application) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tag:maTag value="${bean.attribut}"/>
    Pour cela il faut que l'attribut de ton paramètre "value" du tag soit en rtexprvalue="true" et lui spécifier un type avec type="package.tonObjetAttendu"

    a++

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Par défaut Merci
    Je vous en remerice infiniment gerboise_e et adiGuba, c'est ce que je veux, mon probleme est maintenant résolu

    Merci, Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 21
    Par défaut
    Bonjour,


    Je me permet de remonter ce sujet, qui est assez vieux, mais qui me semble coller au mieux avec mon problème :

    Pour mon boulot, je suis en train de repasser sur le travail d'un ancien employé, qui a codé une application web en struts.

    Une partie de mon travail consiste en dépoussiérer le code.

    dans une partie de son code, il utilisait ce code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text property="phone" maxlength="20" size="20" value="<%= ((OmPerson)session.getAttribute("USER")).getPhone()%>" /><br>

    je voulais remplacer ceci par :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <bean:define id="phone" name="USER" property="phone" />
    <html:text property="phone" maxlength="20" size="20" value="${phone}" /><br>

    à l'affichage, j'obtiens un champ de texte avec la valeur ${phone} dedans, et pas le numéro de téléphone.

    Je n'arrive pas à comprendre pourquoi cela ne fonctionne pas correctement, sachant que pour un autre projet, j'avais fait exactement le même code, et qu'il tournait.

    s'agit-il d'un problème de library, de lecture, ou je ne sais quoi.
    Si quelqu'un pouvait m'éclairer, ça m'arrangerait, merci.

    ps : en utilisant cette ligne

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text name="USER" property="phone"  >
    , le numéro est bien indiqué, mais ça ne m'arrange pas pour la suite de l'application.

    ps 2 : désolé si je ne suis pas dans la bonne section, ou dans le bon message, si c'est le cas, et qu'un modérateur peut me replacer, ce serait super

  7. #7
    Expert confirmé

    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
    Par défaut
    Si l'EL ${phone} n'est pas interprétée, c'est que tu n'es pas en J2EE 1.4 ou plus.
    Pour savoir si tu peux passer en J2EE 1.4, il faudrait que tu précises quel serveur d'application tu utilises et surtout sa version.
    Si jamais tu as une version de serveur d'application qui ne peut pas tourner en J2EE 1.4, tu pourras toujours utiliser la tld struts-html-el.tld.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html-el:text property="phone" maxlength="20" size="20" value="${phone}" />
    sans oublier d'ajouter au début de la jsp la directive taglib qui pointe sur cette tld.

    Tu n'as d'ailleurs pas besoin de coder un bean:define.
    Tu peux directement coder l'EL ${USER.phone}.

    Sinon, pour info, il existe une solution sans EL.
    En général, on initialise le champ texte dans l'Action qui s'exécute avant l'affichage du formulaire via le setter de l'ActionForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm = (TonActionForm) form ;
    tonActionForm.setPhone(((OmPerson)session.getAttribute("USER")).getPhone()) ;

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

Discussions similaires

  1. récuperer le nom d'un attribut (et non pas sa valeur)
    Par oups! dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 20/11/2012, 14h00
  2. [struts][html:link] récuperer la valeur d'un attribut
    Par jamal_b dans le forum Struts 1
    Réponses: 5
    Dernier message: 07/04/2006, 18h38
  3. Récuperer la valeur d'un entier
    Par Sniper37 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/03/2005, 12h13
  4. Valeur d'un attribut
    Par DarkMoox dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/10/2004, 18h31
  5. [jsp] récuperation de valeur d'un formulaire
    Par peppena dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 30/03/2004, 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