Ok, I'm wrong... I was remembering the part where it's coming back from
an indeterminate state after a release(). It has to have the same set of
optional attributes, not necessarily the same values. From JSP.10.1.1
under "Lifecycle":

*[3] Note that since there are no guarantees on the state of the
properties, a
tag handler that had some optional properties set can only be reused if
those
properties are set to a new (known) value. This means that tag handlers
can
only be reused within the same "AttSet" (set of attributes that have
been set).

It doesn't specify what management it can do before doing a release(). I
would assume, though, that it would not reuse a tag handler if it had a
different optional attribute set. I know this was a problem with WLS 6.1
pre SP3, where you'd get weird errors with phantom optional attributes.

Jason

> -----Original Message-----
> From: Scott Farquhar [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, September 14, 2003 10:54 PM
> To: [EMAIL PROTECTED]
> Cc: Matt Ho
> Subject: Re: [OS-webwork] Re: clearing out tag values
> 
> 
> 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
> 


-------------------------------------------------------
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

Reply via email to