Bonjour,
J'ai créé un custom tag, avec la classe et la méthode doTag() qui va avec. Est-il possible, dans ce doTag(), de faire appel à un tag de la taglib c ? Par exemple pour faire un c:import ?
Merci d'avance.
Bonjour,
J'ai créé un custom tag, avec la classe et la méthode doTag() qui va avec. Est-il possible, dans ce doTag(), de faire appel à un tag de la taglib c ? Par exemple pour faire un c:import ?
Merci d'avance.
Si tu veux dans ton tag utiliser ce qui est fait dans le taglib c:import, tu dois soit copier/coller le code à partir de la class Java liée au tag c:import, soit faire en sorte que ton tag extends le tag de la class Java liée au tag c:import... (org.apache.taglibs.standard.tag.rt.core.ImportTag)
Tu peux aussi récupérer le code html généré par la balise c:import et l'implémenter dans ton Tag...
Merci pour vos réponses, qui amènent d'autres questions:
Comment hériter de la classe implémentant le tag import peut résoudre mon problème ?
Concernant le code de ce tag import, où peut-on en trouver la source ?
Va faire un tour sur cette page (http://adiguba.developpez.com/tutoriels/j2ee/jsp/jstl/) je pense qu'il y a tout ce qu'il te faut comme infos sur la JSTL
J'avais déjà été voir. Je n'ai peut-être pas regardé là où il faut, mais je n'ai trouvé aucune information susceptible de m'aider à faire ce que je veux.
J'ai trouvé une solution. Seulement, pour la trouver, j'ai du refaire mon tag en le faisant hériter de TagSupport, et plus SimpleTagSupport (repasser donc aux tag 1.2).
Après, pour appeler le tag c:import, je fais:
Je suppose que ça marcherait avec n'importe quel autre tag, en ajoutant au besoin l'appel aux méthodes pour prendre en charge le bodyContent des tags.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ImportTag it = new ImportTag(); it.setPageContext(pageContext); it.setUrl("nsFooter.jsp"); it.doStartTag(); it.doEndTag(); it.release();
Par contre, ce serait encore mieux si je pouvais faire la même chose en tag 2.0, mais bon, en attendant ça fera l'affaire.
Bonjour.
J'ai pas exactement le code qui fait ce que tu veux (je l'ai à la maison et je uis au boulot), mais je me rappelle comment je l'ai déja fait.
La méthode qui fera ton bonheur est :
dans la classe PageContext.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public abstract void include(java.lang.String relativeUrlPath) throws ServletException, java.io.IOException
Tu peux récuperer une instance qui implémente cette méthode en faisant appel àTu peux donc revenir à JSP 2.0 au lieu de 1.2 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part PageContext pc = (PageContext)SimpleTagSupport.getJspContext()
Ah oué, si on peut caster le jspContext en pageContext ça aide beaucoup![]()
Merci Modjo, tout marche impecc', et plus facilement qu'avec ma solution ^^
Partager