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


JSP.10.1 Простые Обработчики Тэгов - часть 3


Обработчик тэга реализует акцию; JSP-контейнер обязан выдерживать конверсии типов, описанные в , при присвоении значений атрибутам акции.

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

Пустая акция не имеет тела; она может использовать один или два синтаксиса: <foo/> или <foo></foo>. Поскольку пустые акции не имеют тела, методы, имеющие отношение к работе с телом, не вызываются.


В TLD имеется механизм указания на возможность использования тэга только для написания пустых акций; если это используется, непустые акции, использующие такой тэг, будут давать ошибку трансляции.

Непустая акция имеет тело.

Интерфейс Tag

Обработчик тэга, который "не хочет" обрабатывать своё тело, может просто реализовывать интерфейс Tag. Обработчик тэга может "не хотеть" обрабатывать своё тело, если это пустой тэг, или из-за того, что тело просто “передаётся (дальше)/passed through”.

Интерфейс Tag имеет методы предоставления информации о контексте страницы экземпляру Обработчика Тэга, методы обслуживания жизненного цикла обработчиков тэгов и два основных метода для выполнения акции: doStartTag()и doEndTag().


Метод doStartTag() вызывается при обнаружении начального тэга, и его return-значение указывает, должно ли тело/body (если имеется) быть пропущено, или вычислено и передано текущему потоку response.


Метод doEndTag() вызывается при обнаружении конечного тэга; его return-значение указывает, должно ли продолжаться обсчитывание оставшейся части страницы, или нет.
Если в процессе обсчёта тела тэга обнаружено исключение, метод doEndTag не будет выполняться. См. в тэге TryCatchFinally методы, которые гарантированно выполняются.

Интерфейс IterationTag

Интерфейс IterationTag используется для повторяющихся вычислений тела специальной акции.


Этот интерфейс имеет единственный метод - doAfterBody(), который вызывается после каждого вычисления тела для определения необходимости дальнейших вычислений.


Повторение вычисления запрашивается значением 2, которое в JSP 1.1 определено как BodyTag.EVAL_BODY_TAG. Это константное значение сохранено в JSP 1.2 (для полной обратной совместимости), но, для улучшения ясности кода, имеется и новое имя: IterationTag.EVAL_BODY_AGAIN.

Для остановки итерации возвращаемое значение должно быть 0, то есть Tag.SKIP_BODY.

Базовый Класс TagSupport

Класс TagSupport является базовым классом, используемым при реализации интерфейсов Tag или IterationTag.




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



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