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


JSP.4.1 <jsp:useBean>


Акция jsp:useBean

ассоциирует экземпляр объекта языка программирования Java, определённый в данной области видимости/scope

и доступный с данным id через вновь объявленную переменную скриптинга с тем же id.


Акция jsp:useBean

весьма гибка: её точная семантика зависит от заданных атрибутов. Базовая семантика пытается найти существующий объект, используя id и область видимости. Если объект не найден, будет сделана попытка создания этого объекта с использованием других атрибутов.


Можно использовать эту акцию также для задания локального имени объекту, определённому в другом месте, например, в другой JSP-странице или Сервлете. Это может быть выполнено с помощью атрибута типа без предоставления атрибутов class или beanName. Должен быть представлен как минимум тип или класс, и неверным будет предоставление и class, и beanName. Если тип и класс имеются, class обязан быть назначен типу (в понимании Java-платформы). Невозможность его назначить является ошибкой времени трансляции.


Атрибут beanName специфицирует имя Bean'а, как указано в спецификации JavaBeans. Оно используется в качестве аргумента для метода instantiate()

класса java.beans.Beans. Оно обязано иметь форму “a.b.c” и может быть именем класса или ресурса в форме “a/b/c.ser”, которое будет разрешено в текущем ClassLoader/ЗагрузчикеКлассов. Если это не так, будет вызвано исключение времени запроса, как указано в семантике instantiate(). Значением этого атрибута может быть выражение атрибута времени запроса.


Более детально о роли id и scope говорится далее.

Атрибут id

Пара атрибут/значение id=”имя” является элементом jsp:useBean

и имеет специальное значение для JSP-контейнера во время трансляции страницы при обработке запроса клиента.


Конкретно:

  • имя

    обязано быть уникальным в пределах трансляционного модуля и идентифицирует определённый элемент, в котором оно появляется в JSP-контейнере и странице. Дубликаты id, найденные в том же самом трансляционном модуле, приводят в фатальной ошибке времени трансляции.




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