Спецификация Java Server Pages 1.2


JSP.10.1.2 IterationTag



Синтаксис


public interface IterationTag extends Tag


Все Известные Субинтерфейсы: BodyTag


Все Суперинтерфейсы: Tag


Все Известные Реализующие Классы: TagSupport


Описание


Интерфейс IterationTag расширяет интерфейс Tag через определение одного дополнительного метода, управляющего повторными вычислениями его тела.


Обработчик тэга, реализующий IterationTag, рассматривается как обработчик, реализующий Tag через методы doStartTag() и doEndTag(). IterationTag предоставляет новый метод: doAfterBody().


Метод doAfterBody() вызывается после каждого цикла итерации - вычисления тела для управления последующими вычислениями тела.

Если doAfterBody() возвращает IterationTag.EVAL_BODY_AGAIN, тогда тело снова будет вычисляться.
Если doAfterBody() возвращает Tag.SKIP_BODY, тогда тело будет пропущено и вместо него будет обсчитываться doEndTag().


Свойства


Новых свойств, в дополнение к уже имеющимся в Tag, нет.


Методы


Имеется один новый метод: doAfterBody().


Жизненный цикл


Жизненный цикл показан на диаграмме переноса. Исключения, вызываемые в процессе обсчёта doStartTag(), BODY и doAfterBody(), прерывают последовательность выполнения и помещаются на верх стэка, если только обработчик тэга не реализует интерфейс TryCatchFinally; см. детали об этом интерфейсе.
 


Пустые и Непустые Акции


Если TagLibraryDescriptor-файл указывает, что тело всегда обязано иметь пустую акцию (когда вхождение <body-content> установлено в “empty”), тогда метод doStartTag() обязан возвращать SKIP_BODY. В ином случае метод doStartTag() может возвратить SKIP_BODY или EVAL_BODY_INCLUDE.


Если возвращено SKIP_BODY, тело не обсчитывается и вызывается doEndTag().


Если возвращено EVAL_BODY_INCLUDE, тело обсчитывается и “передаётся” текущему out, затем вызывается doAfterBody() и, после 0 или более итераций, вызывается doEndTag().

JSP.10.1.2.3 Поля


public static final int EVAL_BODY_AGAIN


Запрашивает повторение обсчёта некоторого тела/body. Возвращается методом doAfterBody. Для совместимости с JSP 1.1 значение должно тщательно подбираться, чтобы быть тем же самым, что и в, теперь не рекомендуемом, BodyTag.EVAL_BODY_TAG.




Начало  Назад  Вперед



Книжный магазин