- •Тема 3: jsp (Java Server Pages )
- •Jsp сторінка
- •Директиви
- •Розглянемо деякі з таких директив.
- •Фрагмент програмного коду на jsp сторінці (скрипт)
- •Декларації.
- •Скриплети.
- •Вирази.
- •Jsp сторінки і об'єкти
- •Елементи action
- •Стандартні елементи action
- •Додаткові набори тегів
- •Створення бібліотеки custom тегів Custom теги без обробки вмісту
- •Custom теги з обробкою вмісту
- •Атрибути в custom тегах
Custom теги з обробкою вмісту
Якщо потрібен доступ до вмісту custom тега, то відповідний Java клас повинен реалізовувати інтерфейс BodyTag чи ж успадковувати клас BodyTagSupport. І в тому, і в іншому випадку клас може реалізувати методи doInitBody і doAfterBody.
Метод doInitBody викликається відразу після того, як виявлено вміст тега, але до того, як його буде оброблено. Звичайно цей метод використовується коли необхідно виконати ініціалізацію класу залежно від вмісту custom тега.
Метод doAfterBody викликається після того, як вміст custom тега було оброблено. Як і в попередньому розділі, метод doAfterBody може указувати, чи слід повторити обробку вмісту тега ще раз. Якщо це необхідно, метод повинен повернути значення EVAL_BODY_BUFFERED, інакше він повинен повернути SKIP_BODY.
На додаток до двом попередніх, технологією JSP передбачений виклик методу release з тим, щоб дозволити класу, що здійснює підтримку custom тега, звільнити виділені йому ресурси, а також провести інші необхідні дії для повернення в початковий стан.
Безпосередньо для доступу до вмісту custom тега технологією передбачено два методи: getString і getReader.
Атрибути в custom тегах
Крім інформації в проміжку між відкриваючим і закриваючим тегами, custom тег може мати деякі атрибути, які також можуть робити вплив на порядок обробки запиту клієнта. Для кожного з таких атрибутів в класі, що реалізовує custom тег, повинен бути вказаний відповідний атрибут, а також два методи get і set. Наприклад, якщо custom тег має вигляд
<dscat:pageheader height="huge">
то клас, що реалізує цей custom тег, повинен містити наступний код:
protected String height = null;
public String getHeight() {
return (this.height);
}
public void setHeight(String value){
this.height = value;
}
Атрибути custom тега також необхідно декларувати в дескрипторі бібліотеки custom тегів.
