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 :

Passer un objet à un tag [Custom Tags]


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Par défaut Passer un objet à un tag
    Bonjour,

    J'ai crée un tag qui permet d'afficher un arbre (arborescence) dans une passe jsp, mais je me rend compte qu'il me faut passer a ce tag une liste d'objet. Cette liste n'est pas static, elle varie celon les opérations sur la page... et je rafraichi la page a chaque opération. C'est à dire que je ne peux pas mettre dans le code du tag un code du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaListe liste = new MaListe();
    Est ce que je passer une collection d'objet à un tag...? si oui comment?

    Merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Ce que tu peux faire, c'est utiliser un attribut de tag (<xxx:montag attribut="...">) qui indique le nom d'un attribut de request. Cet attribut de request est alors mis à jour à chaque appel de la page, soit par le servlet, soit par le code précédent l'appel du tag. Le tag récupère alors directement l'attribut de request avec ce nom.

  3. #3
    Membre éclairé Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Par défaut
    ok, si j'ai bien compris mon objet et dans la requete sous le nom "liste" de type ArrayList.
    et dans mon tag je fais
    (<xxx:montag attribut="liste">)

    et dans mon code du tag je le recupere avec un getMethode et ce sera bien une arraylist?

  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,


    Il faut que tu déclares un attribut de ton tag avec rtexprvalue à true. Cela permet d'indiquer que la valeur de l'attribut doit être évalué à l'exécution et non à la compilation de la JSP (rtexprvalue == Runtime Expression Value) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <tag>
    		<name>tonTag</name>
    		<tagclass>package.NomClasse</tagclass>
    		<bodycontent>JSP</bodycontent>
    		<attribute>
    			<name>list</name>
    			<rtexprvalue>true</rtexprvalue>
    		</attribute>
    	</tag>
    Tu peux ensuite utiliser une scriplet ou les EL pour passer ton objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <x:tonTag list="<%= taListe %>"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <x:tonTag list="${taListe}"/>
    Plus d'info : Les JSP Taglibs

    a++

  5. #5
    Membre éclairé Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Par défaut
    bon merci, ça doit suffir.. je vais tester.

    Merci

  6. #6
    Membre éclairé Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Par défaut
    Je test en placant une arraylist dans la requete et j'ai l'erreur :

    jsp.error.beans.property.conversion

    Que dois je fair?

  7. #7
    Membre éclairé Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Par défaut
    J'ai reussi a recuperer une ArrayList, mais elle est toujours null, alors que je l'initialise bien...
    je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttributes("liste", Maliste);

  8. #8
    Membre éclairé Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Par défaut
    j'ai trouvé mon erreur, bon en fait dans ma jsp je faisai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list="<%= (ArrayList)pageContext.getAttribute("test")%>"
    alors qu'il faut fair :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list="<%= (ArrayList)pageContext.getRequest().getAttribute("test")%>"
    Encore merci

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

Discussions similaires

  1. [JSP][STRUTS] Passer des objets à une classe action
    Par maphi dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/08/2005, 16h55
  2. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 18h28
  3. [SAX] Passer d'objet java en fichier XML?
    Par spoutyoyo dans le forum Format d'échange (XML, JSON...)
    Réponses: 15
    Dernier message: 05/01/2005, 08h31
  4. [POO] Passer un objet HTML en argument.
    Par defacta dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/12/2004, 10h44

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