DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17173>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17173 FormTag lookup() method not reliable due to release() method specification [EMAIL PROTECTED] changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID ------- Additional Comments From [EMAIL PROTECTED] 2003-02-18 18:51 ------- There isn't a problem with the Struts 1.1 version of the form tag. Here's why. A tag handler instance can only be reused by the container when the set of attributes specified is the same as the set specified for the previous usage. As an example, if you had this on a page: <html:form action="/DoThis" name="foo"> and then later on the page you had this: <html:form action="/DoThat" name="bar"> the container could elect to use the same tag handler instance because the set of attributes specified - i.e. { action, name } - is the same for both tags. If, however, you had this later on the page: <html:form action="/DoTheOther"> the container cannot use the same tag handler instance, because the set of attributes in this case - { action } - is not the same as that of the previous tag instances. With regard to the release() method, after the container calls it, all of a tag's attributes are deemed to have undefined values. As such, the container cannot make any assumptions about the values, and must explicitly set all specified attribute values if it chooses to reuse the tag handler instance. Different containers definitely have different strategies with respect to tag handler reuse. As you noticed, Tomcat 4.1.x does reuse instances, but always calls release() after each usage and sets all values next time around. Earlier versions of Tomcat do not reuse tag handler instances. Resin 2.1.x is more aggressive than Tomcat 4.1.x, and maintains attribute sets so that it can reuse instances with the lowest cost to performance. This makes it (a) faster than Tomcat in processing pages with lots of tags, and (b) an excellent testbed for your own tags, to make sure they adhere to all the rules of the spec. ;-) For more on this, the most concise and easy to understand explanation is in the JSP 1.2 spec itself. See the section on Lifecycle in JSP.10.1.1, and the accompanying diagram. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
