On Tue, 4 Feb 2003 bugzilla@apache.org wrote:
>
> Struts EL tag handlers cannot be reused by containers
>
It sounds like these tags definitely have a problem. There's been some
recent discussion on TOMCAT-USER about designing tags that work reusably
as well.
The bottom line:
* The container can reuse instances of tag handlers
when it sees that exactly the same set of attributes
is used (not necessarily the same values).
* This kind of reuse can happen whether or not the
container implements "tag pooling".
* When a tag handler instance is reused, the JSP page
compiler can decide if it has already set a particular
property on that instance, and omit the second set call.
For example, in:
<foo:bar a="1" b="2/>
<foo:bar a="1" b="3"/>
The second setA() call can be omitted, since the container
knows that it already called setA("1") the first time.
* If a tag instance is going to be reused, the doEndTag()
call on the first use is going to be followed by the
doStartTag() call of the second use. Any per-use cleanup
activity needs to happen at the end of doEndTag().
* The net effect of all this is an important restriction -- it's
not legal for a tag handler to modify the values stored by
the setter calls from the page, *anywhere* in the path from
doStartTag() through doEndTag().
* The container will call release() after it has used the
instance for the last time.
Craig
---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org
|