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=16749>.
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=16749

Struts EL tag handlers cannot be reused by containers





------- Additional Comments From [EMAIL PROTECTED]  2003-02-04 16:44 -------
Can someone verify for us whether Resin is following the specified process for
determining whether a tag can be reused?

In the -el tags, the setter for each attribute will be called, then during
"doStartTag()", their values will be changed if they reference the EL syntax. 
The next time the web container has to decide whether to reuse an instance of
this tag with the same attribute set, if it unconditionally calls the setters
(with values containing the EL expressions), or if it uses the getters to decide
whether to call the setters (string comparison), then I think this should work fine.

However, if the web container stores the attribute values OUTSIDE of the tag
object, and decides to not call the setter if the new value equals the
externally stored value (containing the EL expression), or if it inexplicably
just decides to never call setters on a reused tag handler, then we'll
definitely have a problem.  I've scanned over the paragraphs in the spec that
talk about this, and Hans' section of his recent article that summarizes these
issues, and it's not clear to me what the web container should be doing.

In particular, in Hans' article, he says:

"If an attribute for the other occurrence has a different value, the
corresponding setter method is called, ..."

It seems reasonable to me that this comparison should be done by comparing the
output from the getter method.

Unfortunately, the specification is not even as clear as Hans' statements. 
There is a little transition diagram that's referenced, but the description
seems pretty vague to me.

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

Reply via email to