"Ben Carterette" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> I just set up Tomcat 4.1.18 with my tag library I had been using with
Tomcat
> 4.0.4.  The tags don't work anymore.
>
> The set up is like this:
> <tag1 name="name">
>     <tag2 name="name">value</tag2>
>     <tag2 name="name" value="value"/>
> </tag1>
>
> tag2 sets parameters in tag1, which then executes a SQL query.
>
>
> tag1 looks like this:
> Public class tag1 extends BodyTagSupport
> {
>     private String name;
>     private String param = "";
>
>     public void setName (String name) { this.name = name; }
>
>     public void setParam (String param)
>     {
>         if (this.param.equals("")) this.param = param;
>         else this.param = ", " + param;
>     }
>
>     public int doStartTag() { return EVAL_BODY_BUFFERED; }
>     public int doAfterBody()
>     {
>         stmt.execute(param);
>         // obviously not a complete program but you get the idea
>         return EVAL_PAGE;
>     }
> }
>
> tag2 looks like this:
> Public class tag2 extends BodyTagSupport
> {
>     private String name = "";
>     private String value = "";
>
>     public void setName (String name) { this.name = name; }
>     public void setValue (String value) { this.value = value; }
>
>     public int doStartTag() { return EVAL_BODY_BUFFERED; }
>     public int doAfterBody()
>     {
>         BodyContent body = getBodyContent()
>         tag1Parent = (tag1)findAncestorWithClass(this, tag1.class);
>
>         if (value != "")
>         {
>             tag1Parent.setParam(value);
>         }
>         else
>         {
>             tag1Parent.setParam("'" + value + "'");
>         }
>         // again not a complete program, but hopefully the idea is clear
>         return EVAL_PAGE;
>     }
> }
>
>
> Under Tomcat 4.1.18, the second tag2 doesn't seem to remember the value
> string once it gets to doAfterBody.  It sets it correctly in setValue(),
but
> in doAfterBody() it acts like value is an empty string.  The first tag2
> (which has a body) works fine.  Both worked fine under Tomcat 4.0.4.
>

This is a bug in 4.0.4 which has been fixed in 4.1.x.
<spec-quote version="JSP1.2" section="10.1">
An empty action has no body; it may use one of two syntaxes: either <foo/>
or
<foo></foo>. Since empty actions have no body the methods related to body
manipulation are not invoked.
</spec-quote>

> Also, the param string in tag1 keeps accumulating values from the first
tag2
> every time I reload the page.  Under Tomcat 4.0.4, it started out with an
> empty string when I refreshed.
>
> Did something change between Tomcats 4.0 and 4.1 in the way tags are
> handled?  Do I need to rewrite my code?  Was my code wrong in the first
> place, or is Tomcat 4.1 buggy?  Please help.
>
> Thanks,
> Ben Carterette
> [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to