Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемНиколай Шилов
1 Лекция 19
2 JSTL Назначение JSTL – упростить разработку (и вид) JSP исходя из того, что не все разработчики JSP владеют Java. Кроме того, наличие на JSP кода перегружает страницу, делая её не удобной для редактирования. JSTL предоставляет следующие возможности:
3 Поддержка Expression Language. Позволяет разработчику писать простые выражения внутри атрибутов тега и предоставляет прозрачный доступ к переменным в различных областях видимости. Условные переходы и циклы, основанные на тегах, а не на скриптовом языке. Простое формирование URL к различным ресурсам. Интернационализацию JSP. Взаимодействие с базами данных. Обработку XML. Обработку строк (форматирование и разбор).
4 Expression language JSTL вводит понятие Expression Language (EL) в JSP. EL используется для упрощения доступа к данным, хранящимся в различных областях видимости (page, request, application) и вычисления простых выражений. EL вызывается при помощи конструкции ${}. Начиная с версии спецификации JSP 2.0 / JSTL 1.1, EL является частью JSP и поддерживается безо всяких сторонних библиотек.
5 Доступ к данным EL идентификатор ссылается на переменную возвращаемую вызовом PageContext.findAttribute(identifier). В общем случае, переменная может быть сохранена в любой области видимости: page (PageContext), request (HttpServletRequest), session (HttpSession), application (ServletContext). В случае, если переменная не найдена, возвращается null. Также возможен доступ к параметрам запроса через предопределённый объект paramValues и к заголовкам запроса через requestHeaders.
6 Операторы Операторы, в EL поддерживают наиболее часто используемые манипулирования данными. Типы операторов: Стандартные операторы отношения: == (или eq), != (или neq), (или gt), = (или ge). Арифметические операторы: +, -, *, / (или div), % (или mod). Логические операторы: && (или and), || (или or), ! (или not). Оператор empty – используется для проверки переменной на null или пустое значение (термин пустое значение зависит от типа проверяемого объекта. Например, нулевая длина для строки, или нулевой размер для коллекции).
7 Пример1: User is guest. Пример2:... Автоматическое приведение типов EL использует набор правил для автоматического приведения типов. Например, если оператор ожидает параметр типа Integer, то значение идентификатора будет приведено к типу Integer (если это возможно).
8 Тэги JSTL Библиотека тэгов JSTL состоит из четырёх групп тэгов: основные тэги - core, тэги форматирования - fmt, тэги для работы с SQL – sql, тэги для обработки XML – xml. JSTL core Библиотека core содержит в себе наиболее часто используемые теги. - для обычной JSP для XML формата JSP.
9 Тэги общего назначения - вычисляет и выводит значение выражения. Пример: You have items. По умолчанию, конвертирует символы,,, & в их коды (например, < конвертируется в <). Преобразование может быть отменено, если указать false в атрибуте escapeXml. Можно также в тэге указывать значение по умолчанию для случаев, где значение вычисляемого выражения равно null.
10 Пример: Синтаксис: Без тела: С телом: default value
11 - устанавливает переменную в указанную область видимости. Пример: может также быть использован для изменений свойств объектов JavaBeans или добавлять элементы в объект java.util.Map. Синтаксис 1: Установка переменной в указанную область видимости, используя значение аттрибута Пример ${param.name}
12 Синтаксис 2: Установка переменной в указанную область видимости, используя тело тега: body content Пример:
13 Синтаксис 3: Установка свойства объекта, используя значение атрибута Здесь target – имя переменной, чье свойство должно быть изменено; property – свойство, которое должно быть изменено; value – значение, которое должно получить свойство. Синтаксис 4: Установка свойства объекта, в теле тега body content
14 - удаляет переменную из указанной области видимости. Пример: Синтаксис:
15 - перехватывает обработку исключения. Пример:... Error Синтаксис: ………………………………….
16 Пример: Catching the Exception I can catch the exception: The exception will be thrown inside the catch:
17 The exception is : ${catchException} There is an exception: ${catchException.message} В браузере получим: I can catch the exception: The exception will be thrown inside the catch:20 The exception is : java.lang.ArithmeticException: / by zero There is an exception: / by zero
18 Тэги условного перехода - тело тэга вычисляется только в том случае если значение выражения true. Пример: This is your first visit. Welcome to the site!
19 Синтаксис: Без тела: С телом: body content
20 (, ) – то же что и с поддержкой нескольких условий, и действия, производимого по умолчанию. Пример:
21 Выражение if/then/else может быть легко записано как: No records matched your selection. records matched your selection.
22 Синтаксис: body content ( and subtags) body content conditional block
23 Итераторы - выполняет тело тега для каждого элемента коллекции. Пример:
24 Пример:
25 Класс BookList имеет вид: package aaa; import java.util.*; public class BookList extends AbstractCollection { public ArrayList book_list; public BookList() { book_list = new ArrayList (2); book_list.add(new Book("BookTitle_01","book_01.html")); book_list.add(new Book("BookTitle_02","book_02.html")); } public Iterator iterator() { return book_list.iterator();} public int size(){return 2;} }
26 Класс Book имеет вид: package aaa; public class Book { public String title; public String url; public Book(String new_title, String new_url) { title = new_title; url = new_url; } public String gettitle(){return title;} public String geturl(){return url;} }
27 - выполняет тело тега для каждого токена в строке. Синтаксис: body content
28 Пример: forTokens action Family member # is
29 Тэги обработки URL - перенаправляет запрос на указанный URL. Пример: - добавляет на JSP содержимое указанного WEB- ресурса. Примеры:
30 - формирует адрес с учётом контекста приложения (request.getContextPath()). - добавляет параметр к запросу, сформированному при помощи. Пример: >Register
31 JSTL fmt Содержит тэги форматирования и интернационализации. - для обычной JSP для XML формата JSP.
32 Тэги интернационализации - устанавливает объект Locale, используемый на странице. Пример:, - устанавливают объект ResourceBundle, используемый на странице. В зависимости от установленной локали, выбирается ResourceBundle, соответствующий указанному языку, стране и региону. Действие служит для создания локализированного контекста. Если атрибут var не определен, тогда для сохранения контекста используется конфигурационная переменная javax.servlet.jsp.jstl.fmt.localizationContext
33 Пример: Файл resource_bundle.properties имеет вид: title=My Company welcome=Welcome! Файл resource_bundle_ru.properties имеет вид: title=Моя компания welcome=Привет! В браузере получим Моя компания Привет!
34 - выводил локализованное сообщение. - используется для задания параметра в теге Синтаксис: Значение параметра задано в атрибуте value Пример: Персонализация приветствия
35 Тэги форматирования, - форматирует числа / даты с учётом установленной локали (либо указанного шаблона). Пример: Данный код напечатает следующее: SFr – если регион fr_CH $9,876, – если регион en_US
36 Атрибут pattern задает шаблон для вывода. С его помощью можно указывать количество разрядов после запятой. Например, код выведет следующее: Шаблон "#,#00.0#" указывает на то, что числовое значение будет представляться минимум двумя целыми разрядами, одним дробным и каждые 3 целые разряда будут разделяться запятыми. Например, код напечатает следющее: 123,
37 , - устанавливает временную зону используемую для форматирования. Синтаксис: body content атрибут value, может иметь тип либо String либо java.util.TimeZone Если атрибут value не определен, тогда временной зоной по умолчанию является GMT (Greenwich Mean Time - гринвичское время).
38 JSTL fmt:setTimeZone Tag " /> Date in Current Zone: Change Time Zone to GMT-8 Date in Changed Zone: Date in Current Zone: Change Time Zone to GMT-8 Date in Changed Zone: ">
39 - переводит строковое представление числа в объект подклассов Number. Синтаксис:
40 JSTL fmt:parseNumber Tag Number Parsing: Parsed Number (1) : Parsed Number (2) :
41 JSTL sql Используется для выполнения запросов SQL и обработки результатов запроса на JSP. -для обычной JSP для XML формата JSP.
42 Доступ к физическим источникам данных предоставляется через объект javax.sql.DataSource. Пример: SELECT * FROM customers WHERE country = China ORDER BY lastname
43 вносит изменения в базу данных. Для поддержания целостности базы данных несколько операций могут быть объединены в транзакцию путем включения в тег. Пример: UPDATE account SET Balance = Balance - ? WHERE accountNo = ? UPDATE account SET Balance = Balance + ? WHERE accountNo = ?
44 JSTL xml Используется для обработки данных XML на JSP. - для обычной JSP для XML формата JSP.
45 Теги JSTL для работы с XML базируются на XPath. Теги и позволяют трансформировать XML документы в объекты String и Reader. Доступ к ресурсу через URL осуществляется с помощью тега. Пример:
46 Рассмотрим пример. Пропарсим xml файл Mahendra Singh Sofware developer 25 Anismita Singh Sofware developer 23
47 Ravi Kant Sr. Sofware developer 27 Suman Sr. Graphics Designer 25
48 Jsp страница будет иметь вид Example of x:parse tag Given Xml Document Some operations on this file
49 Expression Result $doc//*
50 $doc/org/* $doc/org/company/*
51 $doc/org/company/emp $doc/org/company[last()]
52 Рассмотрим подробнее. Данный тег имеет следующий вид Таким образом для разбора xml файла используются XPath выражения. Язык XML Path (XPath) является набором синтаксических и семантических правил для ссылок на части XML-документов. XPath предназначен для использования другими спецификациями, такими как XSL Transformations (XSLT) и XML Pointer Language (XPointer).
53 Рассмотрим некоторые XPath выражения Есть два типа маршрутов местоположения: относительный и абсолютный. Относительный маршрут местоположения - это последовательность местоположений, разделенных /. Например: list/item[currentPrice
54 Абсолютный маршрут местоположения состоит из /, за которым, возможно, следует относительный маршрут местоположения, здесь / ссылается на корневой узел. Абсолютный маршрут местоположения является относительным маршрутом местоположения, вычисляемым в контексте корневого узла, например: /list/item[currentPrice
55 @ используется для ссылки на атрибуты. Например, маршрут идентифицирует атрибут currency. идентифицирует элементы item с атрибутом private * используется для ссылки на все элементы, которые являются дочерними для узла используется для ссылки на все атрибуты узла контекста. [] могут также использоваться для ссылки на определенный элемент в упорядоченной последовательности. Например, list/item[2] ссылается на второй элемент item.
56 // используется для ссылки на все дочерние элементы узла контекста. Например, //item ссылается на все элементы item, а //list/item ссылается на все элементы item, которые имеют родителем list. используется для ссылки на сам узел контекста. Например,. выбирает узел контекста, а.//item ссылается на все элементы item, которые являются дочерними для узла контекста... используется для ссылки на родительский узел узла контекста. Например,../item ссылается на первый элемент item
57 XPath также допускает математические выражения и имеет библиотеку функций. Таким образом в браузере получим следующее:
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.