410013796724260
• Webmoney
R335386147728
Z369087728698
Действия actionsДействия JSP actions могут воздействовать на стандартный поток вывода, использовать, модифицировать и создавать объекты. actions используют конструкции с синтаксисом XML для управления работой движка сервлета и позволяют, таким образом, динамически подключать файл, многократно использовать компоненты JavaBeans, направлять пользователя на другую страницу или генерировать HTML для Java plugin. Согласно спецификации JSP, синтаксис actions базируется на XML. В таблице представлены соответствия определений JSP и XML.
Существует набор стандартных действий, которые должны быть в обязательном порядке реализованы любым контейнером JSP, удовлетворяющим спецификации. Кроме этого, возможно создание новых действий с помощью директивы библиотеки тегов taglib. Список стандартных действий представлен в следующей таблице.
Атрибуты тега действия, action attributeДля интерпретации действий определяются значения action attribute, слева-направо, причем, при этом могут совершаться преобразования типов, предусмотренные спецификацией JSP. Значения атрибутов могут быть следующими:
Значения action attribute, вычисляемые в процессе запросов, используются только в действиях, т.е. они, например, не могут использоваться в директивах. Тип элемента действия определяет, зависит ли данный атрибут от запроса или нет. По умолчанию все атрибуты имеют семантику page - фиксированное значение времени транслирования. Большинство атрибутов стандартных действий относятся к типу значений времени трансляции. К значениям, вычисляемым в процессе запроса, относятся атрибуты, представленные в таблице.
Действие jsp:useBeanТег jsp:useBean позволяет ассоциировать экземпляр Java-класса, определенный в данной области видимости scope, с заданным внутренним идентификатором этого класса id в данной странице JSP. Прежде, чем использовать свойства компонента JavaBean (setProperty getProperty), необходимо объявить тег jsp:useBean. При выполнении тега jsp:useBean сервер приложений обеспечивает поиск (lookup) экземпляра данного Java-класса, пользуясь значениями, определенными в атрибутах:
Если объект с данными атрибутами id, scope не найден, предпринимается попытка создать объект, используя значения, определенные в его атрибутах. Синтаксис действия 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 имеет параметры, представленные в таблице.
Если имя класса (class) и имя объекта (beanName) не определены, объект должен быть представлен в заданной области видимости. Значение идентификатора id должно быть уникально в текущем модуле трансляции (JSP-странице), иначе возникает ошибка трансляции. Действие jsp:setPropertyТег jsp:setProperty позволяет присваивать значения свойствам компонента JavaBean, который должен быть предварительно создан действием jsp:useBean и содержать соответствующие свойства. Действие jsp:setProperty имеет следующий синтаксис :
<jsp:setProperty name="идентификатор"
property = "*" |
property = "имяСвойства" |
property = "имяСвойства" | param = "имяПараметра" |
property = "имяСвойства" | value = "значение"
/>
Значения свойств компонента JavaBean устанавливается с учетом соответствия типов значения и свойства. Тег jsp:setProperty позволяет устанавливать значения как простых, так и индексированных ствойств. Свойства компонента JavaBean имеют определенный тип, а также методы setter и getter. При установке параметров обычно проверяются наличия свойств компонента JavaBean, их имена и типы, являются ли свойства простыми или индексированными и т.д. Значения одного или нескольких свойств компонента JavaBean могут быть установлены несколькими способами:
Пример использования тега jsp:setProperty представлен в следующем листинге: <jsp:useBean id="user" class="hall.users" /> <jsp:setProperty name="user" property="name" value="alex" /> <jsp:setProperty name="user" property="name" value="serg" /> Действие jsp:getPropertyПосле объявления компонента JavaBean с помощью действия jsp:useBean его незащищенные свойств становятся доступными для действия jsp:getProperty. Тег jsp:getProperty делает свойства компонента JavaBean видимыми. Данный тег включает значение типа String или объект типа, преобразованный к типу String, в выходной поток. Преобразование простых типов в тип String происходит автоматически. Для объектов необходим вызов метода toString(). Действие jsp:getProperty имеет следующий синтаксис:
<jsp:getProperty name="идентификатор"
property = "имяСвойства"
/>
Тег jsp:getProperty имеет ряд атрибутов, которые представлены в таблице. При записи тега допускается использовать не все возможные атрибуты.
Значения атрибутов в тегах jsp:setProperty и jsp:getProperty ссылаются на объект, который получается из объекта pageContext с помощью метода findAttribute(). Пример использования тега jsp:getProperty представлен в следующем листинге:
<jsp:useBean id="itemBean" ... />
...
<ul>
<li>Количество предметов : <jsp:getProperty name="itemBean" property="numItems" /></li>
<li>Цена за штуку : <jsp:getProperty name="itemBean" property="unitCost" /></li>
</ul>
Действие jsp:includeДействие jsp:include позволяет подключать статические и динамические ресурсы в контекст текущей страницы JSP. Так, например, выходной поток сервлета может быть включен в содержимое страницы JSP. Тогда при вызове страницы JSP выходной поток сервлета будет встроен в выходной поток JSP. Ресурс определяется по его относительному URL-адресу, который интерпретируется в контекст Web-сервера. В отличие от директивы include, которая вставляет файл на этапе трансляции страницы JSP, действие jsp:include вставляет файл при запросе страницы. Это приводит к некоторой потере эффективности и исключает возможность наличия во вставляемом файле кода JSP, но дает существенное преимущество в гибкости. Если рассмотреть в качестве примера JSP-страницу, которая вставляет четыре различных отрывка в Web страницу с новостями сайта. Каждый раз когда меняются заголовки автору достаточно изменить содержимое четырех файлов, тогда как главная JSP страница остается неизменной. Действие jsp:include имеет следующий синтаксис:
// Первый вариант записи тега jsp:include
<jsp:include page="URLАдрес" [flush="true" | "false"] />
// Второй вариант записи тега jsp:include
<jsp:include page="URLАдрес" [flush="true"]>
<jsp:param .../>
[<jsp:param .../>
[...] ]
</jsp:include>
Примером может быть включение страницы-приветствия: <jsp:include page="/general/welcome.html" /> Тег jsp:include имеет атрибуты, представленные в таблице.
Действие jsp:include может включать элементы jsp:param, которые предоставляют значения для некоторых параметров запроса, используемые для включения. Действие jsp:forwardДействие jsp:forward позволяет во время выполнения страницы JSP перенаправлять текущий запрос на другую страницу JSP, некоторый статический ресурс или класс Java-сервлета, находящийся в том же контексте, что и текущая страница JSP. jsp:forward имеет следующий синтаксис :
// Первый вариант записи тега jsp:forward
<jsp:forward page="URLАдрес" [flush="true" | "false"] />
// Второй вариант записи тега jsp:forward
<jsp:forward page="URLАдрес" [flush="true"]>
<jsp:param .../>
[<jsp:param .../> [...] ]
</jsp:forward>
Смысл атрибутов page и flush тот же, что и в случае тега jsp:include. Действие jsp:forward, как и тега jsp:include, может включать элементы jsp:param, которые предоставляют значения для некоторых параметров запроса, используемые для перенаправления. Действие jsp:pluginДействие jsp:plugin позволяет:
Тег jsp:plugin замещается тегом OBJECT или EMBED. Пользователь получает дополнительные модули в составе ответа. Действие jsp:plugin имеет следующий синтасис:
<jsp:plugin type="bean | applet" />
code="кодОбъекта"
codebase="размещениеОбъекта"
{align="выравнивание"}
{archive="списокАрхивов"}
{height="высота"}
{hspace="горизонтальныйОтступ"}
{jreversion="номерВерсии"}
{name="наименованиеКомпонента"}
{vspace="вертикальныйОтступ"}
{width="ширина"}
{nspluginurl="urlАдресДляNetscapeNavigator"}
{iepluginurl="urlАдресДляInternetExplorer"}>
{<jsp:params>
<jsp:param name="наименованиеПараметра" value="значениеПараметра" />
</jsp:params>}
{<jsp:fallback>произвольный текст </jsp:fallback>}
</jsp:plugin>
Атрибуты действия jsp:plugin, представленные в таблице, обеспечивают конфигурационные данные для предоставления соответствующего элемента.
Элементы jsp:param определяют параметры апплета или комопнента JavaBean, элементы jsp:fallback - некоторое содержание, используемое браузером клиента в том случае, если дополнительный модуль по какой-либо причине не может быть вызван, если OBJECT / EMBED не поддерживаются браузером клиента или при возникновении других проблем. Действие jsp:fallback, как и jsp:params, является "дочерним" действием тега jsp:plugin и вне тега не применяется. Коды загружаемых образцов могут не поставляться вместе с контейнером JSP поставщика. Действие jsp:paramДействие jsp:param позволяет определять значения параметров в следующих конструкциях:
Например, при выполнении тега jsp:include или jsp:forward (использование включаемой или перенаправляемой страницы JSP), новые параметры или методы forward передаются в момент выполнения действий с помощью параметров. Действие jsp:param имеет следующий синтасис: <jsp:param name="наименованиеПараметра" value="значениеПараметра" /> Пример использования тега jsp:param для определения значения параметра апплета:
<jsp:plugin
type = "applet"
code = "customer.class"
height= "20"
width = "30">
<jsp:params>
<jsp:param name="client" value="Guest Ltd." />
</jsp:params>
</jsp:plugin>
|
