Processing the Action Body
It’s fairly easy to develop the most basic type of tag handlers even with the classic tag handler API. For a tag handler that needs to read and process the element body, the difference between the simple and the classic API is more apparent.
A classic tag handler that needs access to the action
element’s body must implement the
BodyTag
interface and tell the container to
capture the body evaluation result in an instance of the
BodyContent
class.
The
BodyTag
interface
extends the IterationTag
interface and adds two
new methods:
-
public void setBodyContent(BodyContent bodyContent)
Provides a reference to the
BodyContent
instance that buffers the body evaluation result for this tag handler-
public void doInitBody( ) throws JspException
Can be implemented by a tag handler to prepare for the first evaluation of the body
Figure 21-6 illustrates the container calling these
new methods, which are relative to the methods inherited from the
IterationTag
interface.
As with the Tag
and
IterationTag
interfaces, there’s
a support class that implements all the methods of the
BodyTag
interface, plus a few utility methods:
public class BodyTagSupport extends TagSupport implements BodyTag
The BodyTagSupport
class overrides the
doStartTag( )
method inherited from the
TagSupport
class:
public int doStartTag( ) throws JspException { return ...
Get JavaServer Pages, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.