Jason,
This is not how Resin works, not it is mandated by the spec. Tags *ca*
be reused, without having to reset the parameters. (Don't assume
anything).
So you can not assume that your params are reset.
Cheers,
Scott
On Sun, Sep 14, 2003 at 08:44:21PM -0500, Jason Carreira wrote:
> The decision point for whether a tag instance can be reused is if the
> values for the optional attribute set are the same (same set of keys and
> same values for those keys), so I'm pretty sure it's setting all of the
> properties on the tag instance before reusing it (since it can assume
> the values of the required attributes will be overwritten by new values.
>
> So I think it would be more like this:
>
> Tag tag = new Tag();
> tag.setParamA("abc");
> tag.setParamB("xyz");
>
> tag.doStartTag();
> tag.doEndTag(); //first tag instance
>
> tag.setParamA("abc");
> tag.setParamB("xyz");
>
> tag.doStartTag();
> tag.doEndTag(); //second tag instance
>
> > -----Original Message-----
> > From: Scott Farquhar [mailto:[EMAIL PROTECTED]
> > Sent: Sunday, September 14, 2003 8:32 PM
> > To: Matt Ho
> > Cc: [EMAIL PROTECTED]
> > Subject: [OS-webwork] Re: clearing out tag values
> >
> >
> > Matt,
> >
> > (copying webwork list - I think that they might be interested)
> >
> > On Sun, Sep 14, 2003 at 04:05:14PM -0700, Matt Ho wrote:
> > > Heya Scott,
> > >
> > > We've bounced this one around a couple times and I'd like to get it
> > > resolved. My understanding based on the Jakarta guide and
> > your comments
> > > is that JSP tag fields should be cleared out in the
> > doStartTag() method?
> > > Is this accurate or do you mean something else?
> >
> > Well - all JSP tag properties should be simple setters /
> > getters, and never modified after being set.
> >
> > Anything that needs to be evaluated should be evaluated/set
> > to null in doStartTag(). This evaluation should not affect
> > the original setters / getters.
> >
> > Nothing should be 'reset' anywhere. If we were using
> > database connections, we would release those in the release()
> > method. However, as the release() method is only guaranteed
> > to be called before garbage collection, there isn't much
> > point doing anything else here.
> >
> > The reason for all this is that tags can be reused, without
> > resetting the setter values. So if I have
> >
> > <ww:tag paramA="abc" paramB="xyz" />
> > <ww:tag paramA="abc" paramB="xyz" />
> >
> > Then the code behind this is like:
> >
> > Tag tag = new Tag();
> > tag.setParamA("abc");
> > tag.setParamB("xyz");
> >
> > tag.doStartTag();
> > tag.doEndTag(); //first tag instance
> >
> > tag.doStartTag();
> > tag.doEndTag(); //second tag instance
> >
> >
> > This is the way that it works on resin, which is why you
> > occasionally see the second tag on a page behaving strangely.
> >
> > So - all the tags should behave like the above.
> >
> > Let me know where you need a hand. We don't use the taglib
> > in ww2 (we use velocity), but I can review the code if you
> > need. Check ww1 for examples of tags that I have rewritten properly.
> >
> > Cheers,
> > Scott
> >
> >
> > -------------------------------------------------------
> > This sf.net email is sponsored by:ThinkGeek
> > Welcome to geek heaven.
> > http://thinkgeek.com/sf
> > _______________________________________________
> > Opensymphony-webwork mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> >
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Opensymphony-webwork mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork