Підручник з JSTL (JSP Standard Tag Library): Core & Приклади спеціальних тегів

Зміст:

Anonim

JSTL - це стандартна бібліотека тегів JSP. Тут ми побачимо, як використання різних тегів JSTL полегшить кодування JSP.

У цьому підручнику ви дізнаєтесь-

  • Що таке JSTL
  • Ядро JSTL
  • Спеціальні теги JSP

Що таке JSTL?

JSTL розшифровується як стандартна бібліотека тегів сторінок сервера Java, і це колекція власних бібліотек тегів JSP, які забезпечують загальну функціональність веб-розробки.

Переваги JSTL

  1. Стандартний тег : Він забезпечує багатий рівень портативної функціональності сторінок JSP. Розробнику легко зрозуміти код.
  2. Охайний і чистий код : Оскільки сценарії заплутують розробника, використання JSTL робить код акуратним і чистим.
  3. Автоматична підтримка JavabeansInterospection : Він має перевагу JSTL перед JSP-сценаріями. Мова JSTL Expression дуже легко обробляє код JavaBean. Нам не потрібно знижувати об’єкти, які було отримано як атрибути масштабу. Використання коду скриптів JSP буде складним, і JSTL спростив цю мету.
  4. Людям простіше читати : JSTL базується на XML, який дуже схожий на HTML. Отже, розробникам легко це зрозуміти.
  5. Легше зрозуміти комп’ютерам : Такі інструменти, як Dreamweaver та головна сторінка, генерують все більше HTML-коду. Інструменти HTML чудово справляються з форматуванням HTML-коду. Код HTML змішується з кодом скрипта. Оскільки JSTL виражається як теги, сумісні з XML, генерація HTML легко аналізує код JSTL у документі.

Ядро JSTL

Основні теги - це найбільш часто використовувані теги в JSP. Вони надають підтримку

  • Ітерація
  • Умовна логіка
  • Вилучити вилучення
  • url вперед
  • Переспрямування тощо.

Для використання основних тегів нам потрібно спочатку визначити бібліотеку тегів, а нижче - синтаксис для включення бібліотеки тегів.

Синтаксис:

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

Ось,

  • префікс можна використовувати для визначення всіх основних тегів та
  • uri - це бібліотека taglib, з якої він імпортований

Давайте детально розглянемо деякі основні теги,

1. Вихід:

  • Результат виразу відображається в тезі out
  • Він може безпосередньо уникнути тегів XML. Отже, вони не оцінюються як фактичні теги

Синтаксис:

  • Тут значення представляє інформацію на виході, і воно є обов’язковим
  • За замовчуванням не вдається вивести інформацію, і це не є обов’язковим
  • escapeXML - Це правда, якщо він уникає символів XML.

Приклад:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Основний тег JSP1 

Пояснення коду:

Рядок коду 3: Цей префікс taglib необхідний для всіх тегів, а доданий префікс - "c". Отже, його можна використовувати як префікс для всіх основних тегів.

Рядок коду 12: Тут ми використовуємо coretag out із префіксом "c", і це out виведе значення в тезі виразу. Отже, результат буде ім'ям

При виконанні наведеного вище коду ви отримуєте такий результат:

Вихід:

  • Ми отримуємо значення як назву з основного тегу "out", який буде надрукований у вихідному потоці.

2. Ловити

  • Він виявляє будь-які винятки, які можна викинути, які трапляються в тілі та відображаються як вихідні дані.
  • Він використовується для обробки помилок та їх уловлювання.

Синтаксис:

Тут var представляє ім'я змінної, яка буде містити викид, який можна викинути.

Приклад:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib префікс = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Основний тег JSP2 <% int num = 10/0; %>Виняток: $ {guruException}

Пояснення коду:

Рядок коду 3: Цей префікс taglib необхідний для всіх тегів, а доданий префікс - "c", отже, його можна використовувати як префікс для всіх основних тегів

Кодовий рядок 11-13: Coretag catch використовується для лову винятку та друку винятку. Тут виняток піднімається, коли 10/0, і цей виняток має назву "guruException".

Код, рядок 14: Ми друкуємо "guruException".

Після запуску коду ви отримаєте наступний результат:

Вихід:

  • Ми отримуємо арифметичний виняток як / на нуль, і він виводиться у вихідні дані за допомогою змінної "guruException"

3. Імпорт

  • Ми можемо імпортувати інший вміст файлу на сторінку JSP, як це було зроблено в JSP include action.
  • Тут ми також можемо включити URL-адресу, і вміст буде відображатися на цій сторінці.

Синтаксис:

Тут var - це назва змінної, яка є ідентифікатором, який буде містити ім'я файлу / uri.

uri - відносна назва файлу або uriname.

coretag_jsp31.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib префікс = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Основний тег JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Вставте тут заголовок  Файл відображається після імпортування 

Пояснення коду:

Coretag_jsp31.jsp

Рядок коду 3: Цей префікс taglib необхідний для всіх тегів, а доданий префікс - "c", отже, його можна використовувати як префікс для всіх основних тегів

Рядок коду 11-12: Тут ми імпортуємо файл coretag_jsp32.jsp до цього файлу за допомогою тегу імпорту

Код Line13: Тут ми друкуємо файл coretag_jsp32.jsp за допомогою тегу out.

Коли ви виконуєте наведений вище код, ви отримуєте такий результат.

Вихід:

  • Coretag_jsp32 друкується у вихідних даних, оскільки цей файл було імпортовано в coretag_jsp31.jsp.

4. forEach

  • Він використовується для ітерації кількості елементів у серії висловлювань.
  • Це те саме, що Java forloop.

Синтаксис:

  • Тут var представляє ім'я змінної, яке буде містити ім'я лічильника
  • Початок представляє значення початку лічильника
  • Кінець буде представляти його кінцеве значення

Приклад:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib префікс = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Основний тег JSP4 

Пояснення коду:

Рядок коду 3: Цей префікс taglib необхідний для всіх тегів, а доданий префікс - "c", отже, його можна використовувати як префікс для всіх основних тегів

Рядок коду 11-13: Тут ми використовуємо цикл "forEach", де ім'ям змінної є "gurucount", який почав рахувати як 5 і закінчувати як 10. Ми друкуємо змінну gurucount, число якої починається від 5 до 10.

Коли ви виконуєте код, ви отримуєте такий результат

Вихід:

  • Результат, який ми отримуємо, починається з 5 до 10.

5. Якщо

  • Він використовується для умов тестування.
  • Якщо тег використовується для перевірки умови, чи відповідає вона істині чи ні на основі цього, блок коду буде виконаний.

Синтаксис:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib префікс = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Основний тег JSP5 

Пояснення коду:

Рядок коду 3: Цей префікс taglib необхідний для всіх тегів, а доданий префікс - "c", отже, його можна використовувати як префікс для всіх основних тегів

Рядок коду 11: Тут ми встановлюємо змінну, названу як count, рівною 100

Рядок коду 12-14: Тут ми використовуємо "якщо умова", де ми перевіряємо, чи дорівнює підрахунок 100. Він дорівнює 100, тоді ми отримуємо результат як "Підрахунок дорівнює 100".

Коли ви виконуєте наведений вище код, ви отримуєте такий результат

Вихід:

  • Оскільки умова "якщо" відповідає дійсності, ми отримуємо результат як "Кількість дорівнює 100".

6. переспрямування:

  • Він використовується для перенаправлення поточної сторінки на іншу URL-адресу, надаючи відносну URL-адресу цього тегу.
  • Він підтримує відносні контексту URL-адреси

Синтаксис:

Тут url - це відносна URL-адреса, на яку вона повинна бути перенаправлена, та назва контексту локальної веб-програми.

Приклад:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib префікс = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Основний тег JSP6 

Пояснення коду:

Рядок коду 3: Цей префікс taglib необхідний для всіх тегів, а доданий префікс - "c", отже, його можна використовувати як префікс для всіх основних тегів

Рядок коду 11: Тут ми використовуємо "тег перенаправлення", де ми вказуємо ім'я URL-адреси, і коли ми натискаємо на цю сторінку, воно переспрямовує на сайт, призначений для перенаправлення.

Коли ви виконуєте наведений вище код, ви отримуєте такий результат;

Вихід:

  • Ми отримуємо вихідну URL-адресу guru99.com, яку перенаправляє coretag_jsp6.jsp

Спеціальні теги JSP

  • Це визначений користувачем елемент мови JSP.
  • Коли JSP перетворюється на сервлет, користувацький тег перетворюється на клас, який вживає дії над об'єктом і викликається як обробник тегів.
  • Ці дії при виконанні сервлету викликаються веб-контейнером.
  • Щоб створити призначений користувачем тег, нам потрібно створити обробник тегів, який буде розширювати SimpleTagSupport і повинен замінити метод doTag ().
  • Нам потрібно створити TLD там, де нам потрібно зіставити файл класу в TLD.

Переваги користувацьких тегів у JSP:

  • Портативний - дія, описана в бібліотеці тегів, повинна бути використана в будь-якому контейнері JSP.
  • Просте - нехитрі користувачі повинні вміти розуміти та використовувати цей механізм. Постачальники функціональних можливостей JSP повинні легко зробити його доступним для вчителів як дії.
  • Експресивний - Механізм повинен підтримувати широкий спектр дій, включаючи вкладені дії, елементи сценарію всередині тіл дій, створення, використання та оновлення змінних сценаріїв.
  • Використовується з різних мов сценаріїв - хоча специфікація JSP в даний час визначає лише семантику сценаріїв мовою програмування Java, ми хочемо залишити відкритою можливість інших мов сценаріїв.
  • Спираючись на існуючі концепції та механізми - ми не хочемо винаходити інші способи існування. Крім того, ми хочемо уникати майбутніх конфліктів, коли б ми могли їх передбачити

Синтаксис:

Подумайте, ми створюємо тег testGuru, і ми можемо використовувати клас taghandlertestTag, який замінить метод doTag ().

Class testTag extends SimpleTagSupport{ public void doTag()}

Крім того, нам доведеться зіставити цей клас testTag у TLD (Дескриптор бібліотеки тегів), оскільки контейнер JSP автоматично створить відображення між файлом класу та uri, про який згадувалося у файлі TLD.

Інтерфейс тегів JSP

  • Цей клас повинен буде розширити клас SimpleTagSupport.
  • Цей клас повинен буде замінити метод doTag (), який є частиною класу SimpleTagSupport (перевизначення - це метод, який успадковується від батьківського класу).
  • Цей інтерфейс є допоміжним інтерфейсом інтерфейсу JSPTag.
  • Він надає методи для виконання на початку та в кінці тегу.
  • Крім того, нам потрібно зіставити цей клас у TLD, тобто дескриптор бібліотеки тегів

Ми розглядаємо в наведеному нижче прикладі

Метод інтерфейсу мітки

  • doTag () - це метод, який нам потрібно замінити, який буде мати вміст тегу.
  • Він приймає поточний контекст JSP за допомогою getJSPContext ()

Приклад:

Customtag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib префікс = "ex" uri = "WEB-INF / custom.tld"%> Спеціальний тег <наприклад: guruTag />

Custom.tld

 1.0  2.0  Перевірте рівень TLD  guruTag  demotest.guruTag  порожній 

guruTag.java (TagHandler)

демотест пакету;імпортувати javax.servlet.jsp.tagext. *;імпортувати javax.servlet.jsp. *;імпортувати java.io. *;публічний клас guruTag розширює SimpleTagSupport {public void doTag () викидає JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("Тег гуру");}}

Пояснення коду:

guruTag.java (TagHandler)

Рядок коду 6: клас guruTag розширює клас SimpleTagSupport, який присутній у jar javax.servlet.JSP

Рядок коду 7: Тут ми перекриваємо метод doTag (), який створює JspException та IOException.

Рядок коду 9-10: У цьому методі код буде вбудований у спеціальний тег, який буде викликаний. Ми беремо об'єкт JspWriter, і на ньому буде надруковано "Тег Гуру".

Custom.tld

Рядок коду 6: Тут назва спеціального тегу - "guruTag".

Рядок коду 7: Клас тегу - це taghandlerclass, тобто guruTag.java. Він займає повний шлях до файлу обробника, який включає шлях до каталогу розташування файлу.

Customtag_jsp1.jsp

Рядок коду 3 : Цей префікс taglib необхідний для всіх тегів, а доданий префікс є "ex", отже, він може використовуватися як префікс для всіх основних тегів, а uri - custom.tld, який відображає обробник тегів.

Рядок коду 11: Тут ми визначаємо власний тег "guruTag", який буде викликати метод обробника класу doTag (), і код у ньому буде виконаний.

Коли ви виконуєте наведений вище код, ви отримуєте такий результат

Вихід:

  • Вихідні дані ми отримуємо як "GuruTag" від guruTag.java, тобто TagHandler, який замінює метод doTag () і який друкує "Guru Tag" як вихідний результат.

Короткий зміст:

  • У цьому розділі ми дізналися про стандартну бібліотеку тегів JSP, в якій ми створили основні теги та власні теги.
  • Основні теги включають теги if, if, redirect, import, catch, які були тегами, використовуваними для основних цілей у JSP.
  • Крім того, ми створили власні теги, де ми могли визначати теги та використовувати їх у JSP