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 :

Communication entre tag [Custom Tags]


Sujet :

Taglibs Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 22
    Points
    22
    Par défaut Communication entre tag
    Salut à tous,

    Je souhaiterais faire communiquer deux tag (l'un modifiant les propriétés de l'autre) dans une même page.

    Cependant le tag2 ne se trouve pas dans le body du tag1. Donc la méthode findAncestorWithClass() ne marche pas. En fait Tag2 se trouve après Tag1.

    Quelqu'un à une idée ?

    J'ai pensé passer par une variable de script en mettant tag1 dans le scope de la page. Mais je voulais savoir s'il existe une solution plus propre et déjà implémentée soit dans Struts ou les API Java.

    Merci d'avance pour vos réponse,

    Alexis ;-)

  2. #2
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    j'ai bien une petite idée mais je suis vraiment pas sur que ça fonctionne.
    En fait ce serait de déclarer une variable dans le tag1 de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new VariableInfo("variable1", "Integer", true, VariableInfo.AT_END),
    l'important c'est AT_END (je pouvais pas le mettre en gras dans la balise code)
    les gens qui s'ennuient sont des gens sans imagination.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Merci de ta réponse XristofGreek,

    Je pense que ce que tu me suggère c'est justement de faire une variable de script. Donc de créer un TEI et placer le code que tu me propose dedans. DAns mon cas je placerai non pas un entier mais le tag en lui-même.

    Cependant une variable de script est là pour rendre visible la varibale au sein du code de la JSP. Hors moi j'ai jsute besoin de faire communiquer les deux tag. C'est pour cela que cette solution me semble un peu bricolée.

    Alexis ;-)

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    j'ai trouvé ceci : http://www-106.ibm.com/developerwork...rary/j-taglib/

    Placer le tag dans le pageContext, à la place de l'id je vais utiliser le nom de la classe.

    Je teste, si ça marche je mettrai résolu.

    Alexis ;-)

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Bon ç a marche pas, par contre je vois que l'idée d'utiliser le nom de la classe pour retrouver l'objet dans le page context est utilisé par Struts (en mode debug j'ai retrouvé des références aux classes de Struts)

    Ca semble être la bonne voie, mais ça ne fonctionne pas.

    dans tag1 j'ai placé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void setParent(Tag value)
        {
            //-- On va se rendre visible de FormGestItem
            pageContext.setAttribute(this.getClass().getName(),this);
            super.setParent(value);;
        }
    dans tag2 j'ai placé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public TabGestItem getTabGestItem()
        {
            if (tabGestItem == null)
            {
                tabGestItem = (TabGestItem)pageContext.getAttribute(TabGestItem.class.getName());
            }
            return tabGestItem;
        }

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Ok j'ai déplacé le code de setParent() à setPageContext() et c'est ok.

    Me reste à trouver un bug mais sinon je pense que c'est la bonne solution

    Alexis ;-)

  7. #7
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    est ce que tu pourrais nous donner le code de ta page JSP parce que je pense pas avoir tout compris de comment tu vas réaliser la chose mais ça m'interesse énormément.
    les gens qui s'ennuient sont des gens sans imagination.

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    C'est justement ça le truc dans ma JSP je n'ai rien rajouté (il y a juste les deux tag).

    Je passe par le pageContext pour communiquer la référence du premier tag au second.

    Le fait de placer le code d'initalisation de l'attribut du pageContext dans la méthode setPageContext () c'est juste pour m'assuré qu'elle est bien effectuée avant l'interprétation du second tag. En effet si j'avais placé mon code dans doStartTag rien ne me garnatissait que le doStartTag du premeir tag serait effectué avant le doStartTag du second.

    Voilà,

    Alexis ;-)

  9. #9
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Almex
    En effet si j'avais placé mon code dans doStartTag rien ne me garnatissait que le doStartTag du premeir tag serait effectué avant le doStartTag du second.
    Ben normalement si... Je crois qu'en fait je ne comprend pas ce que tu veux faire c'est pour ça que j'aimerais bien un exemple avec ta page JSP.
    les gens qui s'ennuient sont des gens sans imagination.

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

Discussions similaires

  1. communication entre deux executables
    Par semenzato dans le forum MFC
    Réponses: 8
    Dernier message: 13/04/2005, 22h19
  2. Lecture standard et communication entre processus!
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/07/2003, 16h37
  3. Communication entre processus
    Par markopolo dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/06/2003, 16h21
  4. Réponses: 5
    Dernier message: 25/03/2003, 19h43
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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