javax.servlet.jsp.tagext
Класс VariableInfo

java.lang.Object | +--javax.servlet.jsp.tagext.VariableInfo
public class VariableInfo
extends java.lang.Object

Информация о переменных скриптинга, которые создаются/модифицируются тэгом (на этапе прогона). Эта информация предоставляется TagExtraInfo-классами и используется фазой трансляции JSP.

Переменные скриптинга, генерируемые специальной акцией, могут иметь значения scope: page, request, session и application.

Имя класса (VariableInfo.getClassName) в возвращаемых объектах используется для определения типов переменных скриптинга. В связи с этим, специальная акция не может создать переменную скриптинга примитивного типа. Обойти это можно с помощью "боксовых/boxed" типов.

Имя класса может быть Полным Квалифицированным Именем Класса или кратким именем класса.

Если предоставляется Полное Квалифицированное Имя Класса, оно должно ссылаться на класс, который должен находится в пути CLASSPATH для данного Web-Приложения (см. спецификацию Servlet 2.3 - это директории WEB-INF/lib и WEB-INF/classes). Невыполнение этого приведёт к ошибке времени трансляции.

Если задаются краткие имена классов в VariableInfo-объектах, то имя класса обязано быть именем public-класса в контексте директив import страницы, на которой появилась специальная акция (будет проверено, имеется ли трёп JLS, на который ссылаются). Класс обязан также находиться в пути CLASSPATH для данного Web-Приложения (см. спецификацию Servlet 2.3 - это директории WEB-INF/lib и WEB-INF/classes). Невыполнение этого приведёт к ошибке времени трансляции.

Комментарии Использования

Часто полное квалифицированное имя класса ссылается на класс, который известен библиотеке тэгов и, таким образом, будет помещён в тот же самый JAR-файл, что и обработчики тэгов. В большинстве других случаев оно будет ссылаться на класс, который находится на платформе, на которой построен JSP-процессор (типа J2EE). Использование полных квалифицированных имён классов таким образом является относительно более устойчивым к ошибкам конфигурации.

Краткое имя обычно генерируется библиотекой тэгов на базе некоторых атрибутов, переданных от пользователя специальной акции (автора), и это уже менее надёжно: например, отсутствие директивы import в ссылающейся JSP-странице приведёт к неверному краткому имени класса и ошибке трансляции.

Протокол Синхронизации

Результатом вызова getVariableInfo является массив VariableInfo-объектов. Каждый такой объект описывает переменную скриптинга, предоставляя её имя, тип, указывая, новая переменная, или нет и какова область её видимости. Область видимости лучше показать на рисунке:

Спецификация JSP 1.2 определяет интерпретацию 3 значений:

Значение scope (области видимости) для переменной предполагает, какие методы могут влиять на её значение и, следовательно, где необходима синхронизация:

Информация Переменной в TLD

Информация переменной скриптинга в большинстве случаев может кодироваться непосредственно в Tag Library Descriptor'е через использование субэлемента <variable> элемента <tag>. См. спецификацию JSP.


Поле. Резюме.
static int AT_BEGIN
          Информация о видимости: переменная видна после начального тэга.
static int AT_END
          Информация о видимости: переменная видна после конечного тэга.
static int NESTED
          Информация о видимости: переменная видна только внутри между начальным/конечным тэгами.
 
Конструктор. Резюме.
VariableInfo (java.lang.String varName, java.lang.String className, boolean declare, int scope)
          Конструктор. Эти объекты могут быть созданы (на этапе трансляции) экземплярами TagExtraInfo.
 
Метод. Резюме.
 java.lang.String getClassName ()
           
 boolean getDeclare ()
           
 int getScope ()
           
 java.lang.String getVarName ()
           
 
Методы, унаследованные из класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Поле. Детали.

NESTED

public static final int NESTED
Информация о видимости: переменная видна только внутри между начальным/конечным тэгами.

AT_BEGIN

public static final int AT_BEGIN
Информация о видимости: переменная видна после начального тэга.

AT_END

public static final int AT_END
Информация о видимости: переменная видна после конечного тэга.
Конструктор. Детали.

VariableInfo

public VariableInfo(java.lang.String varName, java.lang.String className, boolean declare, int scope)
Конструктор. Эти объекты могут быть созданы (на этапе трансляции) экземплярами TagExtraInfo.
Параметры:
id - имя переменной скриптинга
className - имя класса переменной скриптинга
declare - если true, это новая переменная (в некоторых языках программирования потребуется определение)
scope - обозначение лексической области видимости переменной
Метод. Детали.

getVarName

public java.lang.String getVarName()

getClassName

public java.lang.String getClassName()

getDeclare

public boolean getDeclare()

getScope

public int getScope()