Default return values from TagSupport

If you don’t override the TagSupport lifecycle methods that return an integer, be aware of the default values the TagSupport method implementations return. The TagSupport class assumes that your tag doesn’t have a body (by returning SKIP_BODY) from doStartTag()), and that if you DO have a body that’s evaluated, you want it evaluated only once (by returning SKIP_BODY from doAfterBody()). It also assumes that you want the rest of the page to evaluate (by returning EVAL-PAGE from doEndtag()).

Default return values when you don’t override the TagSupport method implementation

image with no caption

The TagSupport class assumes your tag doesn’t have a body, or that if the body IS evaluated, that the body should be evaluated only ONCE.

It also assumes that you always want the rest of the page to be evaluated.

Note

doStartTag() and doEndTag() run exactly once.

You really must know this lifecycle for the exam. Don’t forget that doStartTag() and doEndTag() are always called, and they’re called only once, regardless of anything else that happens. But doAfterBody() can run from 0 to many times, depending on the return value of doStartTag() and previous doAfterBody() calls.

Note

You MUST override doStartTag() if you want the tag body to be evaluated!!

Think about it! The default return value from doStartTag() is SKIP_BODY, so if you want the body of your tag evaluated, and you extend TagSupport, ...

Get Head First Servlets and JSP, 2nd 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.