Spec-Zone .ru
спецификации, руководства, описания, API
|
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
СВОДКА: ВЛОЖЕННЫЙ | ПОЛЕ | CONSTR | МЕТОД | ДЕТАЛЬ: ПОЛЕ | CONSTR | МЕТОД |
public interface Tag
Интерфейс классического обработчика тега, который не хочет управлять его телом. Интерфейс Тега определяет основной протокол между обработчиком Тега и реализацией страницы JSP class. Это определяет жизненный цикл и методы, которые будут вызваны в запуске и конечном тэге.
Свойства
Интерфейс Тега определяет метод set и методы метода get для ядра pageContext и родительских свойств.
Объект реализации страницы JSP вызывает setPageContext и setParent, в том порядке, прежде, чем вызвать doStartTag () или doEndTag ().
Методы
Есть два основных действия: doStartTag и doEndTag. Как только все соответствующие свойства были инициализированы, doStartTag и doEndTag методы могут быть вызваны на обработчик тега. Между этими вызовами обработчик тега, как предполагается, содержит состояние, которое должно быть сохранено. После doEndTag вызова обработчик тега доступен для дальнейших вызовов (и это, как ожидают, сохранит свои свойства).
Жизненный цикл
Детали жизненного цикла описываются схемой перехода ниже со следующими комментариями:
setParent()
вызывается, если это снова используется в пределах той же самой страницы, но на различном уровне, setPageContext()
вызывается, если это используется в другой странице, и методы set атрибута вызывают, если значения отличаются или выражаются как разовые запросом значения атрибута. Как только все вызовы на обработчике тега завершаются, метод выпуска вызывается на него. Как только метод выпуска вызывается, все свойства, включая родителя и pageContext, как предполагается, были сброшены к неуказанному значению. Компилятор страницы гарантирует, что выпуск () будет вызван на обработчик Тега прежде, чем обработчик будет выпущен к GC.
Пустое и Непустое Действие
Если файл TagLibraryDescriptor указывает, что у действия должно всегда быть пустое действие, <контент тела> запись "пустых", то doStartTag () метод должен возвратить SKIP_BODY.
Иначе, doStartTag () метод может возвратить SKIP_BODY или EVAL_BODY_INCLUDE.
Если SKIP_BODY возвращается тело, если есть не оценивается.
Если EVAL_BODY_INCLUDE возвращается, тело оценивается и "проходится" к току.
Полевая Сводка | |
---|---|
static int |
EVAL_BODY_INCLUDE
Оцените тело в существующий поток. |
static int |
EVAL_PAGE
Продолжайте оценивать страницу. |
static int |
SKIP_BODY
Пропустите оценку тела. |
static int |
SKIP_PAGE
Пропустите остальную часть страницы. |
Сводка метода | |
---|---|
int |
doEndTag()
Обработайте конечный тэг для этого экземпляра. |
int |
doStartTag()
Обработайте тег запуска для этого экземпляра. |
Тег |
getParent()
Получите родителя (самый близкий обработчик тега включения) для этого обработчика тега. |
void |
release()
Обращенный обработчик Тега, чтобы выпустить состояние. |
void |
setPageContext(PageContext pc)
Установите текущий контекст страницы. |
void |
setParent(Tag t)
Установите родителя (самый близкий обработчик тега включения) этого обработчика тега. |
Полевая Деталь |
---|
static final int SKIP_BODY
static final int EVAL_BODY_INCLUDE
static final int SKIP_PAGE
static final int EVAL_PAGE
Деталь метода |
---|
void setPageContext(PageContext pc)
Это значение является *not*, сброшенным doEndTag (), и должно быть явно сброшено реализацией страницы, если это изменяется между звонками doStartTag ().
pc
- Контекст страницы для этого обработчика тега.void setParent(Tag t)
Это значение является *not*, сброшенным doEndTag (), и должно быть явно сброшено реализацией страницы.
t
- Родительский тег, или нуль.Tag getParent()
getParent () метод может использоваться, чтобы переместиться по вложенной структуре обработчика тега во времени выполнения для сотрудничества среди пользовательских действий; например, findAncestorWithClass () метод в TagSupport обеспечивает удобный способ сделать это.
Текущая версия спецификации только обеспечивает один формальный способ указать на заметный тип обработчика тега: его реализация обработчика тега class, описанный в подэлементе тега-class элемента тега. Это расширяется неофициальным способом, разрешая автору библиотеки тега указать в подэлементе описания на заметный тип. Тип должен быть подтипом реализации обработчика тега class или пусто. Это addititional ограничение может быть использовано специализированным контейнером, который знает о той определенной библиотеке тега, как в случае стандартной библиотеки тега JSP.
TagSupport#findAncestorWithClass
int doStartTag() throws JspException
doStartTag метод предполагает, что свойства pageContext и родитель были установлены. Это также предполагает, что любые свойства, представленные как атрибуты, были установлены также. Когда этот метод вызывается, тело еще не было оценено.
Этот метод возвращает Тег. EVAL_BODY_INCLUDE или BodyTag. EVAL_BODY_BUFFERED, чтобы указать, что тело действия должно быть оценено или SKIP_BODY, чтобы указать иначе.
Когда Тег возвращает EVAL_BODY_INCLUDE, результат оценки тела (если кто-либо) включается в ток JspWriter, как это происходит, и затем doEndTag () вызывается.
BodyTag. EVAL_BODY_BUFFERED только допустим, если обработчик тега реализует BodyTag.
Контейнер JSP ресинхронизирует значения любого AT_BEGIN и ВЛОЖЕННЫХ переменных (определенный связанным TagExtraInfo или TLD) после вызова doStartTag (), за исключением реализации обработчика тега BodyTag, doStartTag которого () метод возвращает BodyTag. EVAL_BODY_BUFFERED.
JspException
- если ошибка произошла, обрабатывая этот тегBodyTag
int doEndTag() throws JspException
Этот метод вызовут после возврата из doStartTag. Тело действия может или не могло быть оценено, в зависимости от возвращаемого значения doStartTag.
Если этот метод возвращает EVAL_PAGE, остальная часть страницы продолжает оцениваться. Если этот метод возвращает SKIP_PAGE, остальная часть страницы не оценивается, запрос завершается, и doEndTag (), методы включения тегов не вызываются. Если этот запрос был передан или включен от другой страницы (или Сервлет), только текущая оценка страницы останавливается.
Контейнер JSP ресинхронизирует значения любого AT_BEGIN и переменных AT_END (определенный связанным TagExtraInfo или TLD) после вызова doEndTag ().
JspException
- если ошибка произошла, обрабатывая этот тегvoid release()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
СВОДКА: ВЛОЖЕННЫЙ | ПОЛЕ | CONSTR | МЕТОД | ДЕТАЛЬ: ПОЛЕ | CONSTR | МЕТОД |
Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается
Сгенерированный на 10-February-2011 12:41