Пользовательские действия (custom actions) в JSP. JSTL.
Пользовательские действия (custom actions) Назначение: отделить вёрстку от программирования на JSP-страницах: Разработчики-программисты создают Java-компоненты, оформляемые в библиотеки тегов Дизайнеры и верстальщики используют эти теги для реализации действий на веб-страницах
Пользовательский тег При вызове тегу задаются атрибуты Реализуется в виде объекта, имеющего кроме прочих специальные методы: выполнения действия освобождения памяти
Использование библиотеки тегов На JSP-странице используется директива: которая указывает TLD-файл, описывающий библиотеку тегов в XML- формате Вызов действия в виде тега: Краткая форма: Полная форма: тело тега
Определение тегов. TLD-файл Необязательное имя Необязательное описание hello jstlpg.tags.HelloTag empty username false true
Определение тегов. Объект- обработчик тега. public class HelloTag extends TagSupport { private String name = null; public int doStartTag() throws JspException { try { pageContext.getOut().print("Hello."+(name==null?"":name)); } catch (Exception ex) { throw new JspTagException(ex.getMessage()); } return SKIP_BODY; } public void setUsername(String name) { this.name = name; }
Пример использования тега Hello example
Библиотека стандартных пользовательских действий (JSTL) Основные теги позволяющие делать циклы, условия, выводить информацию на экран: Теги для работы с xml-документами: Теги для работы с базами данных:
Библиотека стандартных пользовательских действий (JSTL)
Области видимости Страница (page) Запрос (request) Сессия (session) Приложение (application)
Язык выражений Операторы: ==, !=,, =, eq, ne, lt, gt, le, ge ${param.username}
Проверка условий и итерации
Упрощённый вариант тегов Тег создаётся не в виде java-программы, а в виде jsp Помещается в файл с расширением tag в специальной папке (/WEB-INF/tags ) В самом файле указываются атрибуты и т.д.