Going from your example, I'm not sure why you even need to subclass a Struts
tag to get the output you described. You should be able to code something
like this on your JSP:
<lukas:myTag lang="en">
<html:file property="formFile" styleClass="FormField"/>
</lukas:myTag>
The tag handling flow would look like (similar to what you proposed
earlier):
myTag.doStartTag();
pageContext.getOut().println("<table><tr><td>");
*include output of body of custom tag here, which might be Struts tags
which are invoked.
myTag.doEndTag();
pageContext.getOut().println("</td></tr></table>");
Which would evaluate to
<table>
<tr>
<td>
<input type="file" name="formFile" value="" class="FormField">
</td>
</tr>
</table>
All this w/o changing or subclassing a Struts tag, the only Custom tag work
is myTag.
HTH,
Mike
-----Original Message-----
From: Lukas Bradley [mailto:[EMAIL PROTECTED]
Sent: Sunday, October 26, 2003 7:34 PM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Tags creating Tags
Hi all,
Maybe I'm just tired, but the answer to this is not to be found. I could me
making this harder than it is, or something might be right in front of me,
and I don't see it.
What I want is a custom tag that creates other custom tags. Here is a
simple example:
<lukas:myTag lang="en" />
Should produce something like this:
<table>
<tr><td>English</td></tr>
<tr><td><html:file property="formFile" styleClass="FormField"/></td></tr>
<!-- Imagine a lot more custom tags here -->
</table>
Which should then evaluate to:
<table>
<tr><td>English</td></tr>
<tr><td><input type="file" name="formFile" value=""
class="FormField"></td></tr>
<!-- Imagine a lot more custom tags rendering here. -->
</table>
I've thought about trying to extend BodyTagSupport, return
EVAL_BODY_BUFFERED in doStartTag(), modify the bodyContent in doAfterBody(),
then return EVAL_PAGE() in doEndTag(). However, BodyContent has a protected
constructor, and no way to set its content.
I want to maintain the functionality gained from Struts-like custom tags,
while extracting the creation of them in a super-duper momma tag. Any help?
Lukas
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]