The doStartTag method assumes that pageContext and
parent have been set. It also assumes that any properties exposed as
attributes have been set too. When this method is invoked, the body
has not yet been evaluated.
Process body (re)evaluation. This method is invoked by the
Taglib implementation object after every evaluation of
the body into the BodyEvaluation object. The method is
not invoked if there is no body evaluation.
If doAfterBody returns EVAL_BODY_AGAIN, a new evaluation of the
body will happen (followed by another invocation of doAfterBody).
If doAfterBody returns SKIP_BODY no more body evaluations will
occur and then doEndTag will be invoked.
The method re-invocations may be lead to different actions because
there might have been some changes to shared state, or because
of external computation.