Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Данная страница демонстрирует работу тегов




c:import, c:url, c:param, c:redirect.

2) importing by using c:import from jspf

Перейти

В url.jsp был импортирован фрагмент imp.jspf, а также с помощью тега c:url была задана активная ссылка, при активации которой будет осуществлен переход на страницу redirect.jspx.

<!--пример # 10: демонстрация работы тегов c:redirect, c:param: redirect.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

xmlns:c="http://java.sun.com/jsp/jstl/core"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8" />

<html><head><title>Демонстрация тегов core</title></head>

<body>

<c:redirect url="urldestination.jspx">

<c:param name="fname" value="Ostap"/>

<c:param name="lname" value="Bender"/>

</c:redirect>

</body></html>

</jsp:root>

В документе были объявлены два параметра и заданы их значения, а также был автоматически выполнен переход на документ urldestination.jspx.

<!--пример # 11: конечная страница, на которую был перенаправлен запрос
и переданы данные: urldestination.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

xmlns:c="http://java.sun.com/jsp/jstl/core"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8"/>

<html><head>

<title>Демонстрация работы тега c:url</title>

</head>

<body>

<jsp:text>

Ваш запрос был перенаправлен на эту страницу<br/>

Параметры, переданные с помощью тега c:param:<br/>

</jsp:text>

<c:forEach var="ps" items="${param}">

<c:out value="${ps.key} - ${ps.value}"/><br/>

</c:forEach>

</body></html>

</jsp:root>

В результате работы документа в браузер будет выведено:

Ваш запрос был перенаправлен на эту страницу.
Параметры, переданные с помощью тега c:param:
lname - Ostap
fname - Bender

JSTL fmt

Библиотека содержит теги форматирования и интернационализации.

<%@taglib uri=”http://java.sun.com/jstl/fmt” prefix=”fmt”%> – для обычной страницы JSP;

<jsp:root version=”1.2” xmlns:fmt=

”http://java.sun.com/jstl/fmt”>...</jsp:root> – для JSP-документа.

Теги интернационализации:

<fmt:setLocale/> – устанавливает объект класса Locale, используемый на странице;

<fmt:setBundle/>, <fmt:bundle/> – устанавливают объект ResourceBundle, используемый на странице. В зависимости от установленной локали выбирается ResourceBundle, соответствующий указанному языку, стране и региону;

<fmt:message/> – выводит локализованное сообщение.

Теги форматирования:

<fmt:timeZone/>, <fmt:setTimeZone/> – устанавливает часовой пояс, используемый для форматирования;

<fmt:formatNumber/>, <fmt:formatDate/> – форматирует числа/даты с учётом установленной локали (региональных установок) либо указанного шаблона;

<fmt:parseNumber/>, <fmt:parseDate/> – переводит строковое представление числа/даты в объекты подклассов Number / Date.

Ниже приведены три примера на использование тегов из группы fmt.

Документ formatdatejsp.jspx выводит на экран текущую дату и время
с учётом установленного объекта класса Locale.

<!--пример # 12: вывод даты и времени: formatdate.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8"/>

<html><head><title>Формат даты</title></head>

<body>

<jsp:useBean id="now" class="java.util.Date" />

<fmt:setLocale value="en-EN"/>

<jsp:text>Вывод даты в формате English</jsp:text><br/>

Сегодня: <fmt:formatDate value="${now}" /> <br/>

<fmt:setLocale value="ru-RU"/>

<jsp:text>Вывод даты в формате Russian</jsp:text><br/>

Сегодня: <fmt:formatDate value="${now}" /> <br/>

 

Время(стиль-short): <fmt:formatDate value="${now}" type="time" timeStyle="short" /> <br/>

Время(стиль-medium): <fmt:formatDate value="${now}" type="time" timeStyle="medium" /> <br/>

Время(стиль-long): <fmt:formatDate value="${now}" type="time" timeStyle="long" /> <br/>

Время(стиль-full): <fmt:formatDate value="${now}" type="time" timeStyle="full" /> <br/>

</body></html>

</jsp:root>

В результате работы документа в браузер будет выведено:

Вывод даты в формате English
Сегодня: Aug 14, 2007
Вывод даты в формате Russian
Сегодня: 14.08.2007
Время (стиль-short): 23:23
Время (стиль-medium): 23:23:02
Время (стиль-long): 23:23:02 EEST
Время (стиль-full): 23:23:02 EEST

В следующем примере реализован ещё один способ вывода времени и даты

<!--пример # 13: полный вывод даты и времени: timezone.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8"/>

<html><head><title>timezone</title></head>

<body>

<jsp:useBean id="now" class="java.util.Date" />

<jsp:text>

Вывод даты и времени с помощью тега<br/> fmt:formatDate
и установки TimeZone

</jsp:text><br/>

< fmt:setLocale value="ru-RU"/>

<fmt:timeZone value="GMT+4:00">

<fmt:formatDate value="${now}" type="both"

dateStyle="full" timeStyle="full"/> <br/>

</fmt:timeZone>

</body></html>

</jsp:root>

В результате работы документа в браузер будет выведено:

Вывод даты и времени с помощью тега
fmt:formatDate и установки TimeZone
15 Август 2007 г. 0:26:38 GMT+04:00

Страница formatnumber.jspx выводит формат числа в соответствии
с установленными региональными установками.

<!--пример # 14: формат чисел: formatnumber.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8"/>

<html><head><title>fomatnumber</title></head>

<body>

Вывод формата числа 9876543.21: <br/>

<jsp:text>Обычный формат - </jsp:text>

<fmt:formatNumber value="9876543.21" /> <br/>

<jsp:text>Процентный формат - </jsp:text>

< fmt:formatNumber value="9876543.21" type="percent"/> <br/>

<fmt:setLocale value="ru-RU"/>

<jsp:text>Русская валюта - </jsp:text>

<fmt:formatNumber value="9876543.21" type="currency"/> <br/>

<fmt:setLocale value="en-EN"/>

<jsp:text>Английская валюта - </jsp:text>

<fmt:formatNumber value="9876543.21" type="currency"/> <br/>

<jsp:text>Французская валюта - </jsp:text>

<fmt:setLocale value="fr-FR"/>

<fmt:formatNumber value="9876543.21" type="currency"/> <br/>

</body></html>

</jsp:root>

В результате работы документа в браузер будет выведено:

Вывод формата числа 9876543.21:
Обычный формат - 9 876 543,21
Процентный формат - 987 654 321%
Русская валюта - 9 876 543,21 руб.
Английская валюта - ¤9,876,543.21
Французская валюта - 9 876 543,21 €

JSTL sql

Используется для выполнения запросов SQL непосредственно из JSP и обработки результатов запроса в JSP.

<%@taglib uri=”http://java.sun.com/jstl/sql” prefix=”sql”%> – для обычной страницы JSP;

<jsp:root version=”1.2” xmlns:sql=

”http://java.sun.com/jstl/sql”>...</jsp:root> – для JSP-документа.

Теги:

<sql:dateParam> – определяет параметры даты для <sql:query> либо <sql:update>;

<sql:param> – определяет параметры <sql:query> либо <sql:update>;

<sql:query> – выполняет запрос к БД;

<sql:setDataSource> – усанавливает data source для <sql:query>, <sql:update>, и <sql:transaction> тегов;

<sql:transaction> – объединяет внутренние теги <sql:query> и <sql:update> в одну транзакцию;

<sql:update> - выполняет преобразование БД.

В промышленном программировании данная библиотека не используется из-за прямого доступа из JSP в СУБД, что является явным нарушением шаблона MVC.

JSTL xml

Используется для обработки данных XML в JSP-документе.

<% @taglib uri=”http://java.sun.com/jstl/xml” prefix=”x” %> – для обычной JSP-страницы,

<jsp:root version=”1.2” xmlns:x=

”http://java.sun.com/jstl/xml”>...</jsp:root> – для XML формата JSP.

Теги:

<x:forEach> - XML-версия тега <c:choose>;

<x:choose> - XML-версия тега <c:forEach>;

<x:if> - XML-версия тега <c:if>;

<x:otherwise> - XML-версия тега <c:otherwise>;

<x:out> - XML-версия тега <c:out>;

<x:param> - XML-версия тега <c:param>, определяющая параметры для другого тега <x:transform>;

<x:parse> - разбор XML-документа;

<x:set> - XML-версия тега <c:set>;

<x:transform> - трансформация XML-документа;

<x:when> - XML-версия тега <c:when>;

<x:choose> - XML-версия тега <c:choose>;

<x:forEach> - XML-версия тега <c:forEach>.

Включение ресурсов

В реальных проектах JSP-страницы часто состоят из статических элементов. Для этого используется директива include, а файл, содержащий необходимый статичный элемент, сохраняется с расширением .jspf, что означает «фрагмент JSP». При необходимости включения содержимого в JSP-страницу каждый раз, когда та получает запрос, используется стандартное действие jsp:include. В этом случае включаемые сегменты имеют доступ к объектам request, session и applicatio n исходной страницы и ко всем атрибутам, которые имеют эти объекты. Если использовать директиву include, то изменения включаемого сегмента отразятся только после изменения исходной страницы (контейнер JSP перекомпилирует исходную страницу). Для включения содержимого в JSP-документ также используется стандартное действие jsp:include. При этом не обязательно, чтобы включаемый JSP-фрагмент был правильным XML-документом. Главное, чтобы он возвращал текст в виде правильного XML и не нарушал структуру исходного JSP-документа.

<!--пример #15: включение в код статического содержимого: incl_title.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

xmlns:c="http://java.sun.com/jsp/jstl/core"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8" />

<html><head>

<jsp:directive.include file="\WEB-INF\jspf\title.jspf" />

</head>

<body>

<h1>JSP-страница, использующая директиву include</h1>

<h3>Директива include используется для включения статического содержимого, например заголовка страницы.</h3>

</body></html>

</jsp:root>

<!-- пример # 16: код включаемого фрагмента: title.jspf -->

<title>Title from title.jspf</title>

Ниже приведен пример включения динамического содержимого. Включаемый фрагмент получает данные из объектов request и session. Для передачи значения параметра можно использовать строку запроса. Запрос может выглядеть следующим образом:

http://localhost:8082/home/thanks.jspx?lname=username. Установка кодировки в фрагменте необходима для того, чтобы устранить неполадки при включении русского текста.

<!-- пример # 17: использование действия include для динамического включения: thanks.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">

<jsp:directive.page contentType="text/html;charset=Utf-8"/>

<html><head><title>Действие include</title></head>

<body>

Данные, сформированные динамически при включении jsp-фрагмента<br/>

Включаемый фрагмент получает данные из объекта session <br/>

<jsp:include page="\WEB-INF\jspf\params.jsp"/>.

</body></html>

</jsp:root>

<!-- пример #18: включаемый фрагмент: params.jsp -->

<jsp:directive.page contentType="text/html;charset=Utf-8"/>

ID сессии -

<jsp:expression>session.getId()</jsp:expression>

В результате работы документа в браузер будет выведено:

Данные, сформированные динамически при включении jsp-фрагмента.
Включаемый фрагмент получает данные из объектов request, session
ID сессии - 08C51EEC60A97E90C734101F54EA310E.

Также для включения содержимого можно использовать тег <c:import>. Его использование уже было приведено выше.

Обработка ошибок

При выполнении web-приложений, как и любых других, могут возникать ошибки и исключительные ситуации. Три основных типа исключительных ситуаций:

- код «404 Not Found». Возникает при неправильном наборе адреса или обращении к станице, которой не существует;

- код «500 Internal Server Error». Возникает при вызове сервле­том метода sendError(500) для объекта HttpServletResponse;

- исключения времени исполнения. Исключения, генерируемые web-приложением и не перехватываемые фильтром, сервлетом или JSP.

Для обработки исключений в зависимости от типа в приложении может существовать несколько JSP-страниц, сервлетов или обычных HTML-страниц. Для настройки соответствия ошибок и обработчиков используется элемент error-page файла web.xml. Например:

<error-page>

<error-code>404</error-code>

<location>/error404</location>

</error-page>

или

<error-page>

<exception-type>java.io.IOException</exception-type>

<location>/errorIo</location>

</error-page>

В элементе error-code указывается код ошибки, в элементе exception-type – тип исключения.

Для указания страницы, обрабатывающей ошибки, возникающие при выполнении текущей страницы, можно использовать директиву

<jsp:directive.page errorPage="path" />, где path – эту путь к странице-обработчику. Ниже приведен пример, использующий именно такой способ. При нажатии на кнопку генерируется ошибка java.lang.NullPointerException, и управление передается странице error_hand.jsp

<!--пример # 19: генерация ошибки: gen_error.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

xmlns:c="http://java.sun.com/jsp/jstl/core"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8"/>

<jsp:directive.page errorPage="/error_hand.jspx" />

<html><head><title>Генерация исключения</title></head>

<body>

<h2>При нажатии кнопки будет сгенерирована ошибка!</h2>

<form>

<input type="submit" name="gen"

value="Сгенерировать ошибку"/>

</form>

<c:if test="${not emptyparam.gen}">

<jsp:declaration>String str;</jsp:declaration>

<jsp:scriptlet>str.length();</jsp:scriptlet>

</c:if>

</body></html>

</jsp:root>

Страница, вызываемая при ошибках, может иметь статический вид, но при необходимости сообщает о типе и месте возникшего исключения в понятной для клиента приложения форме.

<!--пример # 20: ERROR PAGE: error_hand.jspx -->

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8" />

<jsp:directive.page isErrorPage="true" />

<html><head><title>Сообщение об ошибке</title></head>

<body>

<p>Сгенерирована ошибка! <br/>

<jsp:expression>exception.toString()</jsp:expression>

</p></body></html>

</jsp:root>






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных