Java Server Page - Действие <jsp:useBean>

Тег <jsp:useBean> позволяет ассоциировать экземпляр Java-класса, определенный в данной области видимости scope, с заданным внутренним идентификатором этого класса id в данной странице JSP. Прежде, чем использовать свойства компонента JavaBean (setProperty и getProperty), необходимо объявить тег <jsp:useBean>. При выполнении тега <jsp:useBean> сервер приложений обеспечивает поиск (lookup) экземпляра данного Java-класса, пользуясь значениями, определенными в атрибутах:

Если объект с данными атрибутами id, scope не найден, предпринимается попытка создать объект, используя значения, определенные в его атрибутах. Синтаксис действия <jsp:useBean> может включать тело :

Синтаксис действия <jsp:useBean>
 
<jsp:useBean id="идентификатор"
  scope = "page | request | session | application"
  class = "имяКласса" type = "имяТипа" |
  type = "имяТипа" | class = "имяКласса" |
  beanName = "имяКомпонентаJavaBean" | type = "имяТипа" |
  type = "имяТипа" | beanName = "имяКомпонентаJavaBean" |
  type = "имяТипа"
  <!-- Тело -->
</jsp:useBean
 

При наличии в объявление тела, оно будет вызвано на выполнение, если компонент JavaBean, к которому обращено действие, уже существует. Содержимое тела действия строго не ограничено, однако, как правило, тело действия содержит скриптлеты или теги <jsp:setProperty>, модифицирующие свойства созданного объекта.

Действие <jsp:useBean> очень гибкое. Правила, по которым оно выполняется, зависят от текущих значений его атрибутов. С помощью действия <jsp:useBean> можно:

Тег <jsp:useBean> имеет параметры, представленные в таблице.

Атрибут Описание атрибута
id Параметр, идентифицирующий экземпляр объекта в пространстве имен, специфицированном в атрибуте scope. Это имя используется для ссылки на компонент JavaBean из страницы JSP.
scope Атрибут, определяющий область видимости ссылки на экземпляр объекта JavaBean. Допустимыми значениями являются page, request, session, application. Данный атрибут фактически описывает пространство имен и цикл жизни ссылки на объект. По умолчанию значение объекта равно page.

page (страница). Объект, определенный с областью видимости page, доступен до тех пор, пока не будет отправлен ответ клиенту или пока запрос к текущей странице JSP не будет перенаправлен куда-нибудь еще. Ссылки на объект возможны только в пределах страницы, в которой этот объект определен. Объекты, объявленные с атрибутом page, сохраняются в объекте pageContext.
request (запрос). Объект, имеющий область видимости request, существует и доступен в течение текущего запроса, и остается видимым, даже если запрос перенаправляется другому ресурсу в том же самом цикле выполнения. Объекты, декларированные с атрибутом области видимости request, сохраняются в объекте request.
session (сессия). Объект, имеющий область видимости session доступен в течение текущего сеанса, если страница JSP "знает" о сеансе.
application (приложение). Объект, имеющий область видимости application доступен страницам, обрабатывающим запросы в одном и том же приложении Web, и cуществует до тех пор, пока сервер приложений поддерживает объект ServletContext. Объекты, объявленные с атрибутом области видимости application, сохраняются в объекте application.

class Параметр, определяющий полное имя класса реализации объекта. Данный атрибут используется при инициализации экземпляра компонента JavaBean, если он еще не существует в данной области видимости scope.
beanName Наименование класса реализации объекта. Данный параметр используется, если компонент JavaBean еще не существует. Параметр beanName должен удовлетворять правилам наименования переменных, предусмотренным спецификацией языка скриптлетов. Формат параметра : "строка1.строка2.строка3" - для классов и "строка1/строка2/строка3" - для ресурсов. Параметр beanName предполагает использование метода instantiate () класса java.beans.Beans.
type Атрибут type, определяющий тип специфицированного объекта, дает возможность определить тип переменных скрипта как класс, суперкласс или интерфейс, реализуемый классом. С помощью атрибута type можно избежать автоматической инициализации компонента JavaBean, если он еще не существует в данной области видимости. По умолчанию атрибут type имеет значение, определенное в атрибуте class. Если объект не соответствует задаваемому атрибутом type типу, может быть возбуждено исключение java.lang.ClassCastException.

Если имя класса (class) и имя объекта (beanName) не определены, объект должен быть представлен в заданной области видимости. Значение идентификатора id должно быть уникально в текущем модуле трансляции (JSP-странице), иначе возникает ошибка трансляции.

Партнеры:


Rambler's Top100 Рейтинг@Mail.ru