7.1 c:if, c:forHver
Alle kunne lide koden ved hjælp af tags i stedet for Java-kode, så de besluttede at udvide omfanget. Men programmering er ikke begrænset til at skabe objekter og læse deres egenskaber. Du skal kalde metoder til objekter, arbejde med databasen og andre tjenester. Hvad skal man gøre?
Du skal blot repræsentere hver Java-sætning som et tag. Var if
, vil være <if>
, var for
, vil være <for>
og så videre. Okay, okay, bare sjov, det var ikke sådan. Nå, det kan ikke være, at folk faktisk beslutter sig for at gøre det. Men nej, måske!
Programmører har lov til at tilføje alle tags til koden. I princippet er der ikke noget at bekymre sig om - JSP er en udvidelsesbar standard. Men de gik videre og udgav JSP Standard Tag Library - JSTL. Siden med den ser sådan ud:
<%@ 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>
Det er meget muligt, at du vil støde på sådan kode i dine fremtidige projekter, der vil jeg give nogle forklaringer.
7.2 JSTL-funktioner
JSTL-funktioner falder i 5 kategorier:
- Vigtigste tags;
- Formatering af tags;
- SQL tags;
- XML tags;
- Opkaldsfunktioner.
Jeg vil ikke nævne dem alle, men jeg vil liste de mest populære. Lad os starte med de vigtigste tags:
1 | <c:out> |
Udskriver det angivne udtryk - svarende til <%= %> |
2 | <c:set> |
Skriver resultatet af et udtryk til en variabel |
3 | <c:remove> |
Sletter en variabel |
4 | <c:catch> |
Fanger undtagelser |
5 | <c:if> |
analog til if |
6 | <c:choose> |
analog afbryder |
7 | <c:when> |
Bruges sammen med vælg |
8 | <c:otherwise> |
Bruges sammen med vælg |
9 | <c:import> |
Giver dig mulighed for at inkludere indhold i koden (svarende til importdirektivet) |
10 | <c:forEach> |
for hver sløjfe |
elleve | <c:param> |
Giver dig mulighed for at angive muligheder for import |
12 | <c:redirect> |
Omdirigere |
13 | <c:url> |
Opretter en URL med parametre |
Jeg vil kun give et eksempel og slutte af med det. I princippet er det ganske muligt at læse sådan kode efter nogle færdigheder. Men jeg anbefaler ikke at skrive.
<%@ 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>
Tænk over det, vi skriver Java-kode i form af tags, så JSP-parseren så konverterer disse tags til Java-kode. Noget i denne verden er gået galt.
I øvrigt kan du skrive dine egne tag-biblioteker. Jeg har endda engang arbejdet i et projekt, hvor de var. Fantastisk oplevelse. Så snart der foretages ændringer i biblioteket, går hele jsp øjeblikkeligt i stykker.
Hvad vil du have? Compileren sporer ikke sådanne ændringer. De kan kun findes visuelt, når du ser de genererede HTML-sider. Og hvis det er nogle sjældne scenarier, der opstår i ikke-trivielle situationer ... Gud velsigne backend-udvikling og statisk skrivning!