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.

BodyTag interface methods
Figure 21-6. BodyTag interface methods

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.