JSP Стандартная библиотека тегов (JSTL)

Стандартная библиотека тегов JSP (JSTL) — это набор тегов JSP, который инкапсулирует общую базовую функциональность JSP-приложений.

JSTL поддерживает общие структурированные задачи, такие как итерация, условные проверки, работа с XML-документами, теги интернационализации и теги SQL. Помимо этого, он также предоставляет фреймворк для использования пользовательских тегов, интегрирующихся с JSTL.

В зависимости от функциональности, предоставляемой тегами JSTL, их можно разделить на 5 категорий.

  • Основные теги
  • Теги форматирования
  • Теги SQL
  • Теги XML
  • Функции JSTL

Установка библиотеки JSTL

Шаги по установке библиотеки JSTL в Apache Tomcat следующие:

Бинарный пакет (jakarta-taglibs-standard-current.zip), загруженный из Apache Standard Tag Library.

Скачайтеjakarta-taglibs-standard-1.1.2.zipэтот пакет и распакуйте его, затемjakarta-taglibs-standard-1.1.2/lib/два jar-файла в:standard.jarиjstl.jarСкопируйте файлы в/WEB-INF/lib/.

Скопируйте необходимые tld-файлы из каталога tld в каталог WEB-INF.

Затем добавьте следующую конфигурацию в файл web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
    </taglib>
    </jsp-config>
</web-app>

Чтобы использовать любую библиотеку, необходимо включить тег<taglib>в начало каждого JSP-файла.


Основные теги

Основные теги — это наиболее часто используемые теги JSTL. Синтаксис для ссылки на библиотеку основных тегов следующий:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Тег Описание
<c:out> Используется для отображения данных в JSP, так же как <%= ... >
<c:set> Используется для сохранения данных
<c:remove> Используется для удаления данных
<c:catch> Используется для обработки исключительных ситуаций, приводящих к ошибкам, и для сохранения информации об ошибке
<c:if> То же, что и if, используемый в обычном программировании
<c:choose> Сам по себе служит только родительским тегом для <c:when> и <c:otherwise>
<c:when> Дочерний тег <c:choose>, используемый для определения, истинно ли условие
<c:otherwise> Дочерний тег <c:choose>, размещённый после тега <c:when>, выполняется, когда тег <c:when> вычисляется как false
<c:import> Извлекает абсолютный или относительный URL, затем предоставляет его содержимое странице
<c:forEach> Базовый тег итерации, принимает несколько типов коллекций
<c:forTokens> Разделяет содержимое по указанному разделителю и итеративно выводит его
<c:param> Используется для передачи параметров включаемым или перенаправляемым страницам
<c:redirect> Перенаправляет на новый URL.
<c:url> Создает URL с необязательными параметрами запроса

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

Теги форматирования JSTL используются для форматирования и вывода текста, дат, времени и чисел. Синтаксис ссылки на библиотеку тегов форматирования выглядит следующим образом:

<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>
Тег Описание
<fmt:formatNumber> Форматирует числа с использованием указанного формата или точности
<fmt:parseNumber> Разбирает строку, представляющую число, валюту или процент
<fmt:formatDate> Форматирует даты и время с использованием указанного стиля или шаблона
<fmt:parseDate> Разбирает строку, представляющую дату или время
<fmt:bundle> Привязывает ресурсы
<fmt:setLocale> Задаёт локаль
<fmt:setBundle> Привязывает ресурсы
<fmt:timeZone> Задаёт часовой пояс
<fmt:setTimeZone> Задаёт часовой пояс
<fmt:message> Отображает информацию о конфигурационном файле пакета ресурсов
<fmt:requestEncoding> Задаёт кодировку символов запроса

Теги SQL

Библиотека тегов JSTL SQL предоставляет теги для взаимодействия с реляционными базами данных (Oracle, MySQL, SQL Server и т. д.). Синтаксис для ссылки на библиотеку тегов SQL выглядит следующим образом:

<%@ taglib prefix="sql" 
           uri="http://java.sun.com/jsp/jstl/sql" %>
Тег Описание
<sql:setDataSource> Указывает источник данных
<sql:query> Выполняет операторы SQL-запроса
<sql:update> Выполняет операторы SQL-обновления
<sql:param> Устанавливает параметры в операторе SQL в указанные значения
<sql:dateParam> Устанавливает параметр даты в операторе SQL в указанное значение объекта java.util.Date
<sql:transaction> Обеспечивает вложенные элементы работы с базой данных в рамках общего подключения к базе данных, выполняя все операторы как единую транзакцию

Теги XML

Библиотека тегов JSTL XML предоставляет теги для создания XML-документов и управления ими. Синтаксис подключения библиотеки тегов XML выглядит следующим образом:

<%@ taglib prefix="x" 
           uri="http://java.sun.com/jsp/jstl/xml" %>

Перед использованием XML-тегов необходимо скопировать связанные с XML и XPath пакеты в ваш <каталог установки Tomcat>\lib:

Тег Описание
<x:out> Аналогично <%= ... >, но используется только для выражений XPath
<x:parse> Разбирает XML-данные
<x:set> Задает выражение XPath
<x:if> Вычисляет выражение XPath; если истинно, выполняет содержимое внутри тела, иначе пропускает тело
<x:forEach> Перебирает узлы в XML-документе
<x:choose> Родительский тег для <x:when> и <x:otherwise>
<x:when> Дочерний тег <x:choose>, используемый для условной проверки
<x:otherwise> Дочерний тег <x:choose>, выполняемый, когда <x:when> вычисляется как false
<x:transform> Применяет XSL-преобразование к XML-документу
<x:param> Используется вместе с <x:transform> для установки XSL-таблицы стилей

Функции JSTL

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

<%@ taglib prefix="fn" 
           uri="http://java.sun.com/jsp/jstl/functions" %>
Функция Описание
fn:contains() Проверяет, содержит ли входная строка указанную подстроку
fn:containsIgnoreCase() Проверяет, содержит ли входная строка указанную подстроку без учета регистра
fn:endsWith() Проверяет, заканчивается ли входная строка указанным суффиксом
fn:escapeXml() Экранирует символы, которые могут использоваться как разметка XML
fn:indexOf() Возвращает позицию указанной строки во входной строке
fn:join() Объединяет элементы массива в строку и выводит её
fn:length() Возвращает длину строки
fn:replace() Заменяет указанную позицию во входной строке указанной строкой и возвращает её
fn:split() Разделяет строку с помощью указанного разделителя на массив подстрок и возвращает его
fn:startsWith() Проверяет, начинается ли входная строка с указанного префикса
fn:substring() Возвращает подмножество строки
fn:substringAfter() Возвращает часть строки после указанной подстроки
fn:substringBefore() Возвращает часть строки до указанной подстроки
fn:toLowerCase() Преобразует символы в строке в нижний регистр
fn:toUpperCase() Преобразует символы в строке в верхний регистр
fn:trim() Удаляет начальные и конечные пробельные символы
Другие расширения