Chciałbym napisać niestandardowy tag JSP, którego wyniki zawierają inne znaczniki JSP, które same również powinny być dynamicznie oceniane. Ale najwyraźniej wszystko, co moja subklasa TagSupport
zapisuje na pageContext.getOut()
, przechodzi bezpośrednio do klienta bez dalszej oceny.Jak utworzyć niestandardowy tag JSP, który używa innych znaczników JSP?
Mam przeczucie, że to powinno być bardzo proste, ponieważ wydaje się jedną z pierwszych rzeczy, które chciałby używać niestandardowych tagów do: enkapsulacji i ponownego użycia innych niestandardowych tagów, unikając powielania kodu.
Jak mogę zrobić poniższy kod, robić to, co oczywiście chce zrobić ?:
public class MyTag extends TagSupport {
public int doStartTag() throws JspException {
try {
pageContext.getOut().println(
"The output from this tag includes other tags " +
"like <mypackage:myOtherTag>this one</mypackage:myOtherTag> " +
"which should themselves be evaluated and rendered."
)
} catch (IOException e) {
throw new JspException(e);
}
return SKIP_BODY;
}
}
EDIT: Niektóre tła na moim konkretnym przypadku, czy to pomaga. Mam niestandardowy tag <user>
, który dynamicznie renderuje nazwę użytkownika w sposób, który jest przydatny dla mojej aplikacji (najeżdżanie kursorem myszy na imię, nazwisko, numer telefonu itp.). Piszę teraz kolejny tag <comment>
do wyświetlania komentarzy użytkowników i chciałbym użyć mojego istniejącego znacznika <user>
do renderowania nazw użytkowników na wyjściu z tagu <comment>
.
To powinno pomóc: http://stackoverflow.com/ pytania/2502282/custom-jsp-tag-how-do-i-get-the-body-of-tag –