Jeff Turner wrote:
> Having a look through bug 652:
>
> BodyTag doInitBody and doAfterBody called on tags without body
>
> (http://znutar.cortexity.com/BugRatViewer/ShowReport/652)
>
> I don't think this is a bug.
>
> The JSP spec, p88, says:
>
> "If an action element can have a non-empty body and is
> interested in the content of that body, the methods doInitBody() and
> doAfterBody(), defined in the BodyTag interface are involved."
My interpretation of this is:
* Tag "foo" may have body
* <x:foo>Blah</x:foo> -> body methods called
* <x:foo/> -> no body methods called
> Note, "can have", not "if it does have". So an element without a body, but
> that *could* have a body according to the TLD, still has do*Body methods
> called.
.. if it has a body *in the usage of it*, sure. Of course. But if it's
not *used* with a body, then the body methods should not be called.
> So:
> <my:tag>foo</my:tag> has do*Body() called (obviously).
> <my:tag></my:tag> has do*Body() called (the body will just be blank)
> <my:tag/> has do*Body() called, because according to the XML spec, this is
> shorthand for the <my:tag></my:tag> notation, and therefore processes
> equivalently.
I see the two last ones as distinctly different, whereas the first two
are identical semantically. And I have a couple of tags that indeed
makes a major difference between <x:foo></x:foo> and <x:foo/>.
> Interestingly, JRun3.0 has the opposite bug, and doesn't call setBodyContent
> if the tag doesn't have a body but could.
To me that is correct.
> Eg, in JRun the following action breaks:
>
> <util:include url="foo.html"/>
Why? How is this tag dependent on a body to be supplied?
> But this works:
>
> <util:include url="foo.html"></util:include>
>
> The taglib in question is from the Jakarta Taglibs project.
To me this hints at a bug in the Jakarta Taglibs.
It might be beneficial to send a query about this to the JSP spec
writers, since it's a rather important issue. I have CC'ed
[EMAIL PROTECTED]
regards,
Rickard
--
Rickard Öberg
Email: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]