JSP - Руководство по стандартной библиотеке тегов (JSTL)
В этой главе мы разберемся с различными тегами в JSP. Стандартная библиотека тегов JavaServer Pages (JSTL) - это набор полезных тегов JSP, которые инкапсулируют основные функции, общие для многих приложений JSP.
JSTL поддерживает общие структурные задачи, такие как итерация и условные выражения, теги для управления XML-документами, теги интернационализации и теги SQL. Он также обеспечивает основу для интеграции существующих пользовательских тегов с тегами JSTL.
Установить библиотеку JSTL
Чтобы начать работу с тегами JSP, вам необходимо сначала установить библиотеку JSTL. Если вы используете контейнер Apache Tomcat, выполните следующие два шага:
Step 1- Загрузите бинарный дистрибутив из Apache Standard Taglib и распакуйте сжатый файл.
Step 2 - Чтобы использовать стандартный Taglib из его Jakarta Taglibs distributionпросто скопируйте файлы JAR из каталога lib дистрибутива в каталог вашего приложения. webapps\ROOT\WEB-INF\lib каталог.
Чтобы использовать любую из библиотек, вы должны включить директиву <taglib> в верхней части каждой JSP, использующей библиотеку.
Классификация тегов JSTL
Теги JSTL можно классифицировать в соответствии с их функциями в следующие группы библиотек тегов JSTL, которые можно использовать при создании страницы JSP:
Core Tags
Formatting tags
SQL tags
XML tags
JSTL Functions
Основные теги
Основная группа тегов - это наиболее часто используемые теги JSTL. Ниже приведен синтаксис для включения библиотеки JSTL Core в ваш JSP.
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %> 
    В следующей таблице перечислены основные теги JSTL.
| S.No. | Тег и описание | 
|---|---|
| 1 | Как <% = ...>, но для выражений.  |  
      
| 2 | Устанавливает результат вычисления выражения в 'scope'  |  
      
| 3 | Удаляет scoped variable (из определенной области, если указано).  |  
      
| 4 | Ловит любой Throwable что происходит в его теле и необязательно обнажает его.  |  
      
| 5 | Простой условный тег, который вычисляет свое тело, если предоставленное условие истинно.  |  
      
| 6 | Простой условный тег, который устанавливает контекст для взаимоисключающих условных операций, отмеченных <when> и <otherwise>.  |  
      
| 7 | Подтег <choose> который включает его тело, если его состояние оценивается как 'true'.  |  
      
| 8 | Подтег <choose> что следует за <when> теги и запускается только в том случае, если все предыдущие условия оцениваются как 'false'.  |  
      
| 9 | Извлекает абсолютный или относительный URL-адрес и предоставляет его содержимое либо странице, либо String в 'var', или читатель в 'varReader'.  |  
      
| 10 | Базовый тег итерации, принимающий множество различных типов коллекций и поддерживающий подмножество и другие функции.  |  
      
| 11 | Обходит токены, разделенные указанными разделителями.  |  
      
| 12 | Добавляет параметр в содержащий 'import' URL тега.  |  
      
| 13 | Перенаправляет на новый URL.  |  
      
| 14 | Создает URL-адрес с необязательными параметрами запроса  |  
      
Теги форматирования
Теги форматирования JSTL используются для форматирования и отображения текста, даты, времени и чисел для интернационализированных веб-сайтов. Ниже приведен синтаксис для включения библиотеки форматирования в ваш JSP.
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %> 
    В следующей таблице перечислены теги форматирования JSTL -
| S.No. | Тег и описание | 
|---|---|
| 1 | Для отображения числового значения с определенной точностью или форматом.  |  
      
| 2 | Анализирует строковое представление числа, валюты или процента.  |  
      
| 3 | Форматирует дату и / или время, используя предоставленные стили и шаблон.  |  
      
| 4 | Анализирует строковое представление даты и / или времени  |  
      
| 5 | Загружает пакет ресурсов для использования его телом тега.  |  
      
| 6 | Сохраняет данный языковой стандарт в переменной конфигурации языкового стандарта.  |  
      
| 7 | Загружает пакет ресурсов и сохраняет его в переменной с именованной областью или в переменной конфигурации пакета.  |  
      
| 8 | Задает часовой пояс для любых вложенных в его тело действий форматирования или анализа времени.  |  
      
| 9 | Сохраняет данный часовой пояс в переменной конфигурации часового пояса  |  
      
| 10 | Отображает интернационализированное сообщение.  |  
      
| 11 | Устанавливает кодировку символов запроса  |  
      
Теги SQL
Библиотека тегов JSTL SQL предоставляет теги для взаимодействия с реляционными базами данных (СУБД), такими как Oracle, mySQL, или же Microsoft SQL Server.
Ниже приведен синтаксис для включения библиотеки JSTL SQL в ваш JSP.
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %> 
    В следующей таблице перечислены теги SQL JSTL.
| S.No. | Тег и описание | 
|---|---|
| 1 | Создает простой DataSource, подходящий только для прототипирования  |  
      
| 2 | Выполняет SQL-запрос, определенный в его теле или через атрибут sql.  |  
      
| 3 | Выполняет обновление SQL, определенное в его теле или через атрибут sql.  |  
      
| 4 | Устанавливает для параметра в операторе SQL указанное значение.  |  
      
| 5 | Устанавливает параметр в операторе SQL на указанное значение java.util.Date.  |  
      
| 6 | Предоставляет вложенные элементы действий базы данных с общим подключением, настроенным для выполнения всех операторов как одной транзакции.  |  
      
XML-теги
Теги JSTL XML обеспечивают ориентированный на JSP способ создания XML-документов и управления ими. Ниже приводится синтаксис для включения библиотеки JSTL XML в ваш JSP.
Библиотека тегов XML JSTL имеет настраиваемые теги для взаимодействия с данными XML. Это включает в себя синтаксический анализ XML, преобразование данных XML и управление потоком на основе выражений XPath.
<%@ taglib prefix = "x" 
   uri = "http://java.sun.com/jsp/jstl/xml" %> 
    Прежде чем приступить к примерам, вам нужно будет скопировать следующие две библиотеки, связанные с XML и XPath, в ваш <Tomcat Installation Directory>\lib -
XercesImpl.jar - Скачать с https://www.apache.org/dist/xerces/j/
xalan.jar - Скачать с https://xml.apache.org/xalan-j/index.html
Ниже приведен список тегов XML JSTL.
| S.No. | Тег и описание | 
|---|---|
| 1 | Как <% = ...>, но для выражений XPath.  |  
      
| 2 | Используется для анализа XML-данных, указанных либо через атрибут, либо в теле тега.  |  
      
| 3 | Устанавливает переменную в значение выражения XPath.  |  
      
| 4 | <х: если>  Оценивает тестовое выражение XPath и, если оно истинно, обрабатывает его тело. Если условие проверки ложно, тело игнорируется.  |  
      
| 5 | Чтобы перебрать узлы в XML-документе.  |  
      
| 6 | Простой условный тег, который устанавливает контекст для взаимоисключающих условных операций, отмеченных <when> и <otherwise> теги.  |  
      
| 7 | Подтег <choose> это включает его тело, если его выражение оценивается как «истина».  |  
      
| 8 | Подтег <choose> что следует за <when> теги и выполняется, только если все предыдущие условия оцениваются как «ложные».  |  
      
| 9 | Применяет XSL-преобразование к XML-документу  |  
      
| 10 | Используется вместе с transform тег для установки параметра в таблице стилей XSLT  |  
      
Функции JSTL
JSTL включает ряд стандартных функций, большинство из которых являются общими функциями обработки строк. Ниже приведен синтаксис для включения библиотеки функций JSTL в ваш JSP.
<%@ taglib prefix = "fn" 
   uri = "http://java.sun.com/jsp/jstl/functions" %> 
    В следующей таблице перечислены различные функции JSTL -
| S.No. | Описание функции | 
|---|---|
| 1 | fn: содержит ()  Проверяет, содержит ли входная строка указанную подстроку.  |  
      
| 2 | fn: containsIgnoreCase ()  Проверяет, содержит ли входная строка указанную подстроку без учета регистра.  |  
      
| 3 | fn :ndsWith ()  Проверяет, заканчивается ли входная строка указанным суффиксом.  |  
      
| 4 | fn: escapeXml ()  Экранирует символы, которые можно интерпретировать как разметку XML.  |  
      
| 5 | fn: indexOf ()  Возвращает индекс в строке первого вхождения указанной подстроки.  |  
      
| 6 | fn: join ()  Объединяет все элементы массива в строку.  |  
      
| 7 | fn: длина ()  Возвращает количество элементов в коллекции или количество символов в строке.  |  
      
| 8 | fn: replace ()  Возвращает строку, полученную в результате замены во входной строке всех вхождений данной строки.  |  
      
| 9 | fn: split ()  Разбивает строку на массив подстрок.  |  
      
| 10 | fn: startWith ()  Проверяет, начинается ли входная строка с указанного префикса.  |  
      
| 11 | fn: substring ()  Возвращает подмножество строки.  |  
      
| 12 | fn: substringAfter ()  Возвращает подмножество строки, следующей за определенной подстрокой.  |  
      
| 13 | fn: substringBefore ()  Возвращает подмножество строки перед определенной подстрокой.  |  
      
| 14 | fn: toLowerCase ()  Преобразует все символы строки в нижний регистр.  |  
      
| 15 | fn: toUpperCase ()  Преобразует все символы строки в верхний регистр.  |  
      
| 16 | fn: trim ()  Удаляет пробелы с обоих концов строки.  |