Benutzerdefinierte JSP-tag - Wie bekomme ich den Körper von dem tag?
Habe ich ein benutzerdefiniertes jsp-tag wie diesem:
<a:customtag>
The body of the custom tag...
More lines of the body...
</a:customtag>
In der custom-tag, wie bekomme ich den text von dem, was der Körper ist?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist kompliziert, weil es zwei Mechanismen.
Wenn Sie die Erweiterung SimpleTagSupport, erhalten Sie getJspBody() Methode. Es gibt eine JspFragment, dass Sie invoke(Writer writer) der Körper Inhalt geschrieben, um den Autor.
Sollten Sie verwenden SimpleTagSupport, es sei denn, Sie haben einen besonderen Grund für die Verwendung von BodyTagSupport (wie Erbe-tag-Unterstützung), wie es ist - gut - so einfach.
Wenn Sie sind mit klassischen tags, erweitern Sie BodyTagSupport und erhalten so Zugang zu einem getBodyContent() Methode. Das bekommt man eine BodyContent-Objekt, das Sie abrufen können, die Inhalt aus.
Wenn Sie ein benutzerdefiniertes tag mit jsp 2.0-Ansatz, können Sie es tun, wie:
make-h1.tag
Verwenden Sie es in JSP als:
An important head line
mit<t:MyMessageTag key="someKey">
die<jsp:doBody />
scheint, um es zu ersetzen mit Kleinbuchstaben<t:mymessagetag key="someKey">
und nicht bewerten, das jsp-tag. Irgendeine Idee warum? Oder wie Sie zu behandeln diese Art von verschachtelten tags?body-content
Attribut alstagdependent
anstelle der Standard -scriptless
- jetzt ist alles in Ordnung.Erweitern Brabster Antwort, ich habe
SimpleTagSupport.getJspBody()
zu schreiben, dieJspFragment
zu einem internenStringWriter
für Inspektion und manipulation:}