7.1 c:if, c:forEach
Всички харесаха codeа, използващ етикети instead of Java code, така че решиха да разширят обхвата. Но програмирането не се ограничава до създаване на обекти и четене на техните свойства. Трябва да извиквате методи на обекти, да работите с базата данни и други услуги. Какво да правя?
Просто трябва да представите всеки израз на Java като таг. Беше if
, ще бъде <if>
, беше for
, ще бъде <for>
и т.н. Добре, добре, шегувам се, не беше така. Е, не може хората наистина да решат да го направят. Но не, може би!
Програмистите имат право да добавят всяHowви тагове към codeа. По принцип няма от Howво да се притеснявате - JSP е разширяем стандарт. Но те отидоха по-далеч и пуснаха JSP Standard Tag Library - JSTL. Страницата с него изглежда така:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title> JSTL Example</title>
</head>
<body>
<c:set var = "salary" scope = "session" value = "${2000*5}"/>
<c:if test = "${ salary > 2000}">
<p>My salary is: <c:out value = "${salary}"/><p>
</c:if>
</body>
</html>
Напълно възможно е да срещнете такъв code в бъдещите си проекти, там ще дам някои обяснения.
7.2 JSTL функции
JSTL функциите попадат в 5 категории:
- Основни тагове;
- Форматиращи етикети;
- SQL тагове;
- XML тагове;
- Функции за извикване.
Няма да изброявам всички, но ще изброя най-популярните. Да започнем с основните тагове:
1 | <c:out> |
Извежда посочения израз - еквивалентен на <%= %> |
2 | <c:set> |
Записва резултата от израз в променлива |
3 | <c:remove> |
Изтрива променлива |
4 | <c:catch> |
Улавя изключения |
5 | <c:if> |
аналог на ако |
6 | <c:choose> |
аналогов превключвател |
7 | <c:when> |
Използва се заедно с select |
8 | <c:otherwise> |
Използва се заедно с select |
9 | <c:import> |
Позволява ви да включите съдържание в codeа (еквивалентно на директивата за импортиране) |
10 | <c:forEach> |
за всеки цикъл |
единадесет | <c:param> |
Позволява ви да зададете опции за импортиране |
12 | <c:redirect> |
Пренасочване |
13 | <c:url> |
Създава URL с параметри |
Ще дам само един пример и ще завърша с това. По принцип е напълно възможно да се прочете такъв code след известно умение. Но не препоръчвам писане.
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title> Each Tag Example&</title>
</head>
<body>
<c:forEach var = "i" begin = "1" end = "5">
Item <c:out value = "${i}"/><p>
</c:forEach>
</body>
</html>
Помислете за това, ние пишем Java code под формата на тагове, така че JSP анализаторът след това ще преобразува тези тагове в Java code. Нещо в този свят се е объркало.
Между другото, можете да напишете свои собствени библиотеки с етикети. Дори веднъж работих в проект, където бяха те. Страхотно преживяване. Веднага щом се направят промени в библиотеката, целият jsp веднага се поврежда.
Какво искаш? Компилаторът не проследява такива промени. Те могат да бъдат намерени само визуално, когато преглеждате генерираните HTML страници. И ако това са някои редки сценарии, които възникват в нетривиални ситуации ... Бог да благослови бекенд разработката и статичното писане!