Spec-Zone .ru
спецификации, руководства, описания, API
|
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
СВОДКА: ВЛОЖЕННЫЙ | ПОЛЕ | CONSTR | МЕТОД | ДЕТАЛЬ: ПОЛЕ | CONSTR | МЕТОД |
public interface BodyTag
Интерфейс BodyTag расширяет IterationTag, определяя дополнительные методы, которые позволяют обработчику тега управлять контентом оценки его тела.
Это - обязанность обработчика тега управлять контентом тела. Например обработчик тега может взять контент тела, преобразовать его в Строку, используя bodyContent.getString метод и затем использовать его. Или обработчик тега может взять контент тела и выписать его в его включение JspWriter, используя bodyContent.writeOut метод.
Обработчик тега, который реализует BodyTag, обрабатывается как тот, который реализует IterationTag, за исключением того, что doStartTag метод может возвратить SKIP_BODY, EVAL_BODY_INCLUDE или EVAL_BODY_BUFFERED.
Если EVAL_BODY_INCLUDE возвращается, то оценка происходит как в IterationTag.
Если EVAL_BODY_BUFFERED будет возвращен, то объект BodyContent будет создаваться (кодом, сгенерированным компилятором JSP), чтобы получить оценку тела. Код, сгенерированный компилятором JSP, получает объект BodyContent, вызывая pushBody метод тока pageContext, который дополнительно имеет эффект сохранения предыдущего, оценивают. Компилятор страницы возвращает этот объект, вызывая popBody метод PageContext class; вызов также восстанавливает значение.
Интерфейс предоставляет одному новому свойству метод метода set и один новый метод действия.
Свойства
Есть новое свойство: bodyContent, чтобы содержать объект BodyContent, куда объект реализации Страницы JSP поместит оценку (и переоценку, если соответствующий) тела. Метод метода set (setBodyContent) будет только вызван, если doStartTag () возвратит EVAL_BODY_BUFFERED, и у соответствующего элемента действия нет пустого тела.
Методы
В дополнение к методу метода set для bodyContent свойства есть новый метод действия: doInitBody (), который вызывается прямо после setBodyContent () и перед оценкой тела. Этот метод только вызывается, если doStartTag () возвращает EVAL_BODY_BUFFERED.
Жизненный цикл
Детали жизненного цикла описываются схемой перехода ниже. Исключения, которые выдаются во время вычисления doStartTag (), setBodyContent (), doInitBody (), ТЕЛО, doAfterBody () прерывают последовательность выполнения и распространяются стек, если обработчик тега не реализует интерфейс TryCatchFinally; см. тот интерфейс для деталей.
Пустое и Непустое Действие
Если файл TagLibraryDescriptor указывает, что у действия должно всегда быть пустое тело элемента, <контент тела> запись "пустых", то doStartTag () метод должен возвратить SKIP_BODY. Иначе, doStartTag () метод может возвратить SKIP_BODY, EVAL_BODY_INCLUDE, или EVAL_BODY_BUFFERED.
Отметьте, что, какие методы вызываются после того, как doStartTag () зависит и от возвращаемого значения и от того, если элемент пользовательского действия пуст или не в странице JSP, не, как это объявляется в TLD.
Если SKIP_BODY возвращается, тело не оценивается, и doEndTag () вызывается.
Если EVAL_BODY_INCLUDE возвращается, и элемент пользовательского действия не пуст, setBodyContent () не вызывается, doInitBody () не вызывается, тело оценивается и "проходится" к току, doAfterBody () вызывается и затем, после того, как нуль или больше итераций, doEndTag () вызываются. Если элемент пользовательского действия пуст, только doStart (), и doEndTag () вызываются.
Если EVAL_BODY_BUFFERED возвращается, и элемент пользовательского действия не пуст, setBodyContent () вызывается, doInitBody () вызывается, тело оценивается, doAfterBody () вызывается, и затем, после того, как нуль или больше итераций, doEndTag () вызываются. Если элемент пользовательского действия пуст, только doStart (), и doEndTag () вызываются.
Полевая Сводка | |
---|---|
static int |
EVAL_BODY_BUFFERED
Запросите создание нового буфера, BodyContent, на котором можно оценить тело этого тега. |
static int |
EVAL_BODY_TAG
Осуждаемый. С Java API JSP 1.2, используйте BodyTag. EVAL_BODY_BUFFERED или IterationTag. EVAL_BODY_AGAIN. |
Поля, наследованные от интерфейса javax.servlet.jsp.tagext. IterationTag |
---|
EVAL_BODY_AGAIN |
Поля, наследованные от интерфейса javax.servlet.jsp.tagext. Тег |
---|
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE |
Сводка метода | |
---|---|
void |
doInitBody()
Подготовьтесь к оценке тела. |
void |
setBodyContent(BodyContent b)
Установите bodyContent свойство. |
Методы, наследованные от интерфейса javax.servlet.jsp.tagext. IterationTag |
---|
doAfterBody |
Методы, наследованные от интерфейса javax.servlet.jsp.tagext. Тег |
---|
doEndTag, doStartTag, getParent, release, setPageContext, setParent |
Полевая Деталь |
---|
static final int EVAL_BODY_TAG
static final int EVAL_BODY_BUFFERED
Деталь метода |
---|
void setBodyContent(BodyContent b)
Когда setBodyContent вызывается, значение неявного объекта было уже изменено в объекте pageContext. Объект BodyContent, который передают, будет иметь не данные на этом, но, возможно, был снова использован (и очищен) от некоторого предыдущего вызова.
Объект BodyContent доступен и с соответствующим контентом до окончания вызова doEndTag метода, в котором случае это может быть снова использовано.
b
- BodyContentdoInitBody()
, IterationTag.doAfterBody()
void doInitBody() throws JspException
Контейнер JSP ресинхронизирует значения любого AT_BEGIN и ВЛОЖЕННЫХ переменных (определенный связанным TagExtraInfo или TLD) после вызова doInitBody ().
JspException
- если ошибка произошла, обрабатывая этот тегIterationTag.doAfterBody()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
СВОДКА: ВЛОЖЕННЫЙ | ПОЛЕ | CONSTR | МЕТОД | ДЕТАЛЬ: ПОЛЕ | CONSTR | МЕТОД |
Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается
Сгенерированный на 10-February-2011 12:41