javax.servlet.jsp.tagext
インタフェース IterationTag

すべてのスーパーインタフェース:
Tag
既知のサブインタフェースの一覧:
BodyTag
既知の実装クラスの一覧:
BodyTagSupport, TagSupport

public interface IterationTag
extends Tag

The IterationTag interface extends Tag by defining one additional method that controls the reevaluation of its body.

A tag handler that implements IterationTag is treated as one that implements Tag regarding the doStartTag() and doEndTag() methods. IterationTag provides a new method: doAfterBody().

The doAfterBody() method is invoked after every body evaluation to control whether the body will be reevaluated or not. If doAfterBody() returns IterationTag.EVAL_BODY_AGAIN, then the body will be reevaluated. If doAfterBody() returns Tag.SKIP_BODY, then the body will be skipped and doEndTag() will be evaluated instead.

Properties There are no new properties in addition to those in Tag.

Methods There is one new methods: doAfterBody().

Lifecycle

Lifecycle details are described by the transition diagram below. Exceptions that are thrown during the computation of doStartTag(), BODY and doAfterBody() interrupt the execution sequence and are propagated up the stack, unless the tag handler implements the TryCatchFinally interface; see that interface for details.

Empty and Non-Empty Action

If the TagLibraryDescriptor file indicates that the action must always have an empty action, by an <body-content> entry of "empty", then the doStartTag() method must return SKIP_BODY. Otherwise, the doStartTag() method may return SKIP_BODY or EVAL_BODY_INCLUDE.

If SKIP_BODY is returned the body is not evaluated, and then doEndTag() is invoked.

If EVAL_BODY_INCLUDE is returned, the body is evaluated and "passed through" to the current out, then doAfterBody() is invoked and, after zero or more iterations, doEndTag() is invoked.


フィールドの概要
static int EVAL_BODY_AGAIN
          Request the reevaluation of some body.
 
インタフェース javax.servlet.jsp.tagext.Tag から継承したフィールド
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
メソッドの概要
 int doAfterBody()
          Process body (re)evaluation.
 
インタフェース javax.servlet.jsp.tagext.Tag から継承したメソッド
doEndTag, doStartTag, getParent, release, setPageContext, setParent
 

フィールドの詳細

EVAL_BODY_AGAIN

public static final int EVAL_BODY_AGAIN
Request the reevaluation of some body. Returned from doAfterBody. For compatibility with JSP 1.1, the value is carefully selected to be the same as the, now deprecated, BodyTag.EVAL_BODY_TAG,

関連項目:
定数フィールド値
メソッドの詳細

doAfterBody

public int doAfterBody()
                throws JspException
Process body (re)evaluation. This method is invoked by the JSP Page 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, the value of out will be restored using the popBody method in pageContext, 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.

The JSP container will resynchronize any variable values that are indicated as so in TagExtraInfo after the invocation of doAfterBody().

戻り値:
whether additional evaluations of the body are desired
例外:
JspException


Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.