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!