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> |