7.1 c:if, c:forHver
Alle likte koden ved å bruke tagger i stedet for Java-kode, så de bestemte seg for å utvide omfanget. Men programmering er ikke begrenset til å lage objekter og lese egenskapene deres. Du må kalle metoder for objekter, jobbe med databasen og andre tjenester. Hva å gjøre?
Du trenger bare å representere hver Java-setning som en tag. Var if
, vil være <if>
, var for
, vil være, <for>
og så videre. Ok, ok, tuller bare, det var ikke sånn. Vel, det kan ikke være at folk faktisk bestemmer seg for å gjøre det. Men nei, kanskje!
Programmerere har tillatelse til å legge til alle tagger i koden. I prinsippet er det ingenting å bekymre seg for – JSP er en utvidbar standard. Men de gikk videre og ga ut JSP Standard Tag Library - JSTL. Siden med den ser slik ut:
<%@ 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 godt mulig du vil komme over slik kode i dine fremtidige prosjekter, der vil jeg gi noen forklaringer.
7.2 JSTL-funksjoner
JSTL-funksjoner faller inn i 5 kategorier:
- Hovedetiketter;
- Formatering av tagger;
- SQL-koder;
- XML-koder;
- Ringefunksjoner.
Jeg vil ikke liste dem alle, men jeg vil liste opp de mest populære. La oss starte med hovedtaggene:
1 | <c:out> |
Sender ut det angitte uttrykket - tilsvarende <%= %> |
2 | <c:set> |
Skriver resultatet av et uttrykk til en variabel |
3 | <c:remove> |
Sletter en variabel |
4 | <c:catch> |
Fanger unntak |
5 | <c:if> |
analog til if |
6 | <c:choose> |
analog bryter |
7 | <c:when> |
Brukes sammen med select |
8 | <c:otherwise> |
Brukes sammen med select |
9 | <c:import> |
Lar deg inkludere innhold i koden (tilsvarer importdirektivet) |
10 | <c:forEach> |
for hver løkke |
elleve | <c:param> |
Lar deg angi alternativer for import |
12 | <c:redirect> |
Omdirigere |
1. 3 | <c:url> |
Oppretter en URL med parametere |
Jeg skal bare gi ett eksempel og avslutte med det. I prinsippet er det fullt mulig å lese slik kode etter en viss ferdighet. Men jeg anbefaler ikke å 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>
Tenk på det, vi skriver Java-kode i form av tagger, slik at JSP-parseren så konverterer disse taggene til Java-kode. Noe i denne verden har gått galt.
Du kan forresten skrive dine egne tag-biblioteker. Jeg jobbet til og med en gang i et prosjekt der de var. Fantastisk opplevelse. Så snart det er gjort endringer i biblioteket, brytes hele jsp umiddelbart.
Hva vil du? Kompilatoren sporer ikke slike endringer. De kan bare bli funnet visuelt når du ser på de genererte HTML-sidene. Og hvis dette er noen sjeldne scenarier som oppstår i ikke-trivielle situasjoner ... Gud velsigne backend-utvikling og statisk skriving!
GO TO FULL VERSION