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]

Reply via email to