En guide til JSTL-biblioteket

1. Oversigt

JavaServer Pages Tag Library (JSTL) er et sæt tags, der kan bruges til at implementere nogle almindelige operationer såsom looping, betinget formatering og andre.

I denne vejledning diskuterer vi, hvordan du opsætter JSTL, og hvordan du bruger dens mange tags.

2. Opsætning

For at aktivere JSTL-funktioner er vi nødt til at føje biblioteket til vores projekt. For et Maven-projekt tilføjer vi afhængigheden i pom.xml fil:

 javax.servlet jstl 1.2 

Når biblioteket er føjet til vores projekt, vil den endelige opsætning være at tilføje det centrale JSTL-tag og alle andre tags 'navneområdet til vores JSP ved hjælp af taglib-direktivet som dette:

Dernæst ser vi på disse tags, der er bredt grupperet i fem kategorier.

3. Core tags

JSTL-kerne-tag-biblioteket indeholder tags til udførelse af grundlæggende handlinger, såsom udskrivningsværdier, variabeledeklaration, undtagelseshåndtering, udførelse af iterationer og erklæring af betingede udsagn blandt andre.

Lad os se på kernetags.

3.1. Det Tag

bruges til at vise værdier indeholdt i variabler eller resultatet af et implicit udtryk.

Det har tre attributter: værdi, standard og escapeXML. Det escapeXML attributoutput rå XML-tags indeholdt i værdi attribut eller dens indeslutning.

Et eksempel på tag vil være:

3.2. Det Tag

Det tag bruges til at deklarere scoped variabler i JSP. Vi kan også erklære navnet på variablen og dens værdi i var og værdi attributter henholdsvis.

Et eksempel vil være af formen:

3.3. Det Tag

Det tag fjerner afgrænsede variabler, der svarer til tildeling nul til en variabel. Det tager var og rækkevidde attribut med rækkevidde har en standardværdi på alle anvendelsesområder.

Nedenfor viser vi et eksempel på brug af tag:

3.4. Det Tag

Det tag fanger enhver undtagelse, der kastes i dens kabinet. Hvis undtagelsen kastes, gemmes dens værdi i var attribut for dette tag.

Typisk brug kan se ud:

Og for at kontrollere, om undtagelsen smides, bruger vi tag som vist nedenfor:

Undtagelsen er: $ {exceptionThrown}

Der er en undtagelse: $ {exceptionThrown.message}

3.5. Det Tag

Det er et betinget tag, der kun viser eller udfører de vedlagte scriptlets, når det er prøve attribut evalueres til sandt. Resultatet af evalueringen kan gemmes i dens var attribut.

3.6. , og Mærker

Det er et overordnet tag, der bruges til at udføre switch-lignende eller if-else-udtryk. Den har to undertags; og som repræsenterer henholdsvis if / else-if og ellers.

tager en prøve attribut, der indeholder det udtryk, der skal evalueres. Nedenfor viser vi et eksempel på brug af disse tags:

3.7. Det Tag

Det tag håndterer hentning og eksponering af indhold fra absolutte eller relative webadresser.

Vi kan bruge url og var attributter til at indeholde URL'en og indholdet hentet fra henholdsvis URL'en. For eksempel kunne vi importere indhold fra en URL ved at:

3.8. Det Tag

Det tag svarer til Java's til, mens eller gør-mens-syntaks. Det genstande attribut indeholder listen over emner, der skal gentages, mens begynde og ende attributter holder henholdsvis start- og slutindekset (nulindeksering).

tag har også en trin attribut, der styrer størrelsen på indeksforøgelsen efter hver iteration. Nedenfor viser vi et eksempel på brug:

 Vare 

3.9. Det Tag

Det tag bruges til opdeling af a Snor i tokens og gentages gennem dem.

Svarende til tag, det har en genstande attribut og en yderligere afgrænsning attribut, som er afgrænsningen for Snor sådan her:

3.10. og Mærker

Det tag er nyttigt til formatering af en URL med korrekt anmodningskodning. den formaterede URL er gemt i var attribut.

tag har også en undertag, der bruges til at specificere URL-parametre. Vi viser et eksempel nedenfor:

3.11. Det Tag

Det tag udfører en URL-omskrivning og omdirigerer brugeren til den side, der er angivet i dens url attribut. En typisk brugssag vil se sådan ud:

4. Formatering af tags

JSTL-formateringskortbiblioteket giver en bekvem måde til formatering af tekst, tal, datoer, tidspunkter og andre variabler for bedre visning.

JSTL-formateringskoder kan også bruges til at forbedre internationaliseringen af ​​et websted.

Før vi bruger disse formateringskoder, skal vi tilføje taglib til vores JSP:

Lad os identificere de forskellige formateringskoder, og hvordan de kan bruges.

4.1. Det Tag

Det tag er nyttigt ved formatering af datoer eller klokkeslæt. Det værdi attribut indeholder datoen, der skal formateres, og type attribut tager en af ​​tre værdier; dato, klokkeslæt eller begge dele.

har også en mønster attribut, hvor vi kan specificere det ønskede formateringsmønster. Nedenfor er et eksempel på et af mønstrene:

4.2. Det Tag

Det tag ligner tag.

Forskellen er, at med tag kan vi specificere det formateringsmønster, som den underliggende datoparser skal forvente, at datoværdien skal være i.

Vi kan analysere datoer:

4.3. Det Tag

Det tag håndterer gengivelse af tal i et bestemt mønster eller en præcision, som kan være en af nummer, valuta eller procentdel som specificeret i dens type attribut. Et eksempel på brug af ville være:

4.4. Det Tag

Det tag ligner tag. Forskellen er, at med tag, vi kan specificere det formateringsmønster, som den underliggende nummerparser skal forvente, at antallet skal være i.

Vi kunne bruge dette som:

4.5. Det Tag

Det tag er et overordnet tag til tag. gør bundtet specificeret i sin basenavn attribut til den vedlagte tags.

tag er nyttigt til at muliggøre internationalisering, da vi kan specificere landespecifikke objekter. Typisk brug vil være af formen:

4.6. Det Tag

Det tag bruges til at indlæse et ressourcegruppe i JSP og gøre det tilgængeligt gennem hele siden. Den indlæste ressourcebundt er gemt i var attribut for tag. Vi kan indstille bundt ved at:

4.7. Det Tag

Det tag bruges til at indstille lokaliteten for sektionerne i JSP, der er placeret efter dens erklæring. Typisk vil vi indstille dette ved:

fr_FR repræsenterer det landestandard, der er fransk i dette tilfælde.

4.8. Det Tag

Det tag er et overordnet tag, der specificerer den tidszone, der skal bruges af enhver formatering eller parsing af handlinger af tags i dens kabinet.

Denne tidszoneparameter leveres af dens værdi attribut. Et eksempel på brug vises nedenfor:

4.9. Det Tag

Det tag kan bruges til at kopiere den tidszone, der er angivet i dens værdi attribut til en afgrænset variabel, der er specificeret i dens var attribut. Vi definerer dette ved:

4.10. Det Tag

Det <>> tag bruges til at vise internationaliseringsmeddelelse. Den unikke id for meddelelsen, der skal hentes, skal videregives til dens nøgle attribut.

En bestemt pakke til at slå op på meddelelsen, som også kan specificeres gennem bundt attribut.

Dette kan se sådan ud:

4.11. Det Tag

Det tag er nyttigt til at specificere kodningstypen for formularer med en handlingstype stolpe.

Navnet på den tegnkodning, der skal bruges, leveres gennem nøgle attribut for tag.

Lad os se et eksempel nedenfor:

5. XML-tags

JSTL XML-tagbibliotek giver praktiske måder til interaktion med XML-data inden for en JSP.

For at få adgang til disse XML-tags tilføjede vi tagbiblioteket til vores JSP ved:

Lad os se på de forskellige tags i JSTL XML tags-biblioteket.

5.1. Det Tag

Det tag ligner scriptlet-tag i JSP men bruges specifikt til XPath-udtryk.

tag har en Vælg og escapeXML attributter, der bruges til at specificere XPath-udtrykket til evaluering af en Snor og for at muliggøre udslip af henholdsvis specielle XML-tegn.

Et simpelt eksempel er:

$ output i ovenstående henviser til en forudindlæst XSL-fil.

5.2. Det Tag

Det tag bruges til at analysere de XML-data, der er angivet i dens xml eller dok attribut eller indhegning. Et typisk eksempel ville være:

5.3. Det Tag

Det tag indstiller den variabel, der er angivet i dens var attribut til det evaluerede XPath-udtryk sendt til dets Vælg attribut. Et typisk eksempel ville være:

5.4. Det Tag

Det tag behandler sin krop, hvis XPath-udtrykket leveres til dets Vælg attribut evalueres til sandt.

Resultatet af evalueringen kan gemmes i dens var attribut.

En simpel brugssag vil se ud:

 Dokumentet har mindst et element. 

5.5. Det Tag

Det tag bruges til looping over noder i et XML-dokument. XML-dokumentet leveres via tag Vælg attribut.

Ligesom kerne tag, tag har begynder, slutter og trin egenskaber.

Således ville vi have:

  • Tingens navn:

5.6. , og Mærker

Det tag er et overordnet tag, der bruges til at udføre switch-lignende eller hvis / else-if / else-udtryk og ikke har nogen attributter, men omslutter og tags.

tag ligner if / else-if og tager en Vælg attribut, der indeholder det udtryk, der skal evalueres.

tag ligner andet / standardklausul og har ingen attribut.

Nedenfor viser vi en eksempler på brugstilfælde:

  Varekategori er Sneakers Varekategori er Hæle Ukendt kategori. 

5.7. og Mærker

Det tag omdanner et XML-dokument inden for JSP ved at anvende et eXtensible Stylesheet Language (XSL) på det.

XML-dokumentet eller Snor der skal transformeres leveres til dok attribut, mens den XSL, der skal anvendes, videregives til xslt attribut for tag.

tag er et undertag af tag, og det bruges til at indstille en parameter i transformationsstilarket.

En simpel brugssag vil være af formen:

6. SQL-tags

JSTL SQL-tagbibliotek giver tags til udførelse af relationsdatabasedrifts.

For at aktivere JSTL SQL-tags tilføjer vi taglib til vores JSP:

JSTL SQL-tags understøtter forskellige databaser, herunder MySQL, Oracle og Microsoft SQL Server.

Dernæst ser vi på de forskellige tilgængelige SQL-tags.

6.1. Det Tag

Det tag bruges til at definere JDBC-konfigurationsvariablerne.

Disse konfigurationsvariabler opbevares i driver, url, bruger, adgangskode og datakilde egenskaber for tag som vist nedenfor:

I ovenstående er var attribut har en værdi, der identificerer den tilknyttede database.

6.2. Det Tag

Det tag bruges til at udføre en SQL SELECT-sætning med resultatet gemt i en scoped-variabel defineret i dens var attribut. Typisk vil vi definere dette som:

 VÆLG * fra BRUGERE; 

tag kvm attribut indeholder den SQL-kommando, der skal udføres. Andre attributter inkluderer maxRows, startRowog datakilde.

6.3. Det Tag

Det tag ligner tag, men udfører kun SQL INSERT-, UPDATE- eller DELETE-operationer, der ikke kræver en returværdi.

Et eksempel på brug vil være:

 INSERT TO USERS (first_name, last_name, email) VALUES ('Grace', 'Adams', '[email protected]'); 

tag var attribut indeholder antallet af rækker, der blev påvirket af SQL-sætningen, der er angivet i dens kvm attribut.

6.4. Det Tag

Det tag er et under tag, der kan bruges inden for eller tag for at levere en værdi til en værdi pladsholder i SQL-sætningen som denne:

 SLET FRA BRUGERE HVOR e-mail =? 

tag har en enkelt attribut; værdi der holder den værdi, der skal leveres.

6.5. Det Tag

Det tag bruges inden for eller tag for at angive en dato- og tidsværdi for en værdi-pladsholder i SQL-sætningen.

Vi kan definere dette i vores JSP sådan:

 UPDATE Brugere SET registreret =? HVOR e-mail =? 

Ligesom tag, tag har en værdi attribut med et ekstra type attribut, hvis værdi kan være en af dato tid eller tidsstempel (dato og tid).

6.6. Det Tag

Det tag bruges til at oprette JDBC-transaktionslignende operation ved gruppering og tags sammen som dette:

  UPDATE brugere SET first_name = 'Patrick-Ellis' WHERE email = "[email protected]" UPDATE Users SET last_name = 'Nelson' WHERE email = '[email protected]' INSERT INTO Users (first_name, last_name, email) VALUES ('Grace ',' Adams ',' [email protected] '); 

tag sikrer, at alle databasefunktioner behandles med succes (begås) eller alle fejler yndefuldt (rulles tilbage), hvis der opstår en fejl i nogen af ​​operationerne.

7. JSTL-funktioner

JSTL-metoder er hjælpeprogrammer til datamanipulation inden for JSP. Mens nogle funktioner tager forskellige datatyper, er de fleste af dem dedikeret til Snor manipulation.

For at aktivere JSTL-metoder i JSP tilføjer vi taglib til vores side:

Lad os se på disse funktioner og hvordan man bruger dem.

7.1. fn: indeholder () og fn: containIgnoreCase ()

Det fn: indeholder () metode evaluerer en Snor for at kontrollere, om den indeholder en given substring som denne:

Fundet 'først' i streng

Det fn: indeholder () funktion tager to Snor argumenter den første er kilden Snor og det andet argument er substring. Det returnerer en boolsk, afhængigt af resultatet af evalueringen.

Det fn: containIgnoreCase () funktion er en sag-ufølsom variant af fn: indeholder () metode og kan bruges på denne måde:

Fundet 'første' streng

Fundet 'FIRST' streng

7.3. Det fn: endsWith () Fungere

Det fn: endsWith () funktion evaluerer en Snor for at kontrollere, om dens suffiks matcher en anden understreng. Det kræver to argumenter; det første argument er Snor hvis suffiks skal testes, mens det andet argument er det testede suffiks.

Vi kan definere dette som:

Streng slutter med 'streng'

7.4. Det fn: escapeXml () Fungere

Det fn: escapeXML () funktion bruges til at undslippe XML-markering i input Snor sådan her:

$ {fn: escapeXml (streng1)}

7.5. Det fn: indexOf () Fungere

Det fn: indexOf () funktion ser gennem en Snor og returnerer indekset for den første forekomst af en given understreng.

Det kræver to argumenter; den første er kilden Snor og det andet argument er substringen, der matcher og returnerer den første forekomst.

fn: indexOf () funktion returnerer et heltal og kan bruges som:

Indeks: $ {fn: indexOf (streng1, "første")}

7.6. Det fn: join () Fungere

Det fn: join () funktion sammenkæder alle elementer i en matrix til en enkelt Snor og kan bruges på denne måde:

7.7. Det fn: længde () Fungere

Det fn: længde () funktion returnerer antallet af elementer i den givne samling eller antallet af tegn i den givne Snor.

Det fn: længde () funktion tager en enkelt Objekt som enten kan være en samling eller en Snor og returnerer et heltal som dette:

Længde: $ {fn: længde (streng1)}

7.8. Det fn: udskift () Fungere

Det fn: udskift () funktion erstatter alle forekomster af en substring i en streng med en anden Snor.

Det kræver tre argumenter; kilden Snor, undergrunden for at slå op i kilden og Snor for at erstatte alle forekomster af substringen sådan:

7.9. Det fn: split () Fungere

Det fn: split () funktion udfører splitoperation på en Snor ved hjælp af den specificerede afgrænser. Her er et eksempel på brug:

7.10. Det fn: startsWith () Fungere

Det fn: startsWith () funktion kontrollerer præfikset for a Snor og returnerer sandt, hvis det matcher en given understreng som denne:

String starter med 'This'

7.11. Det fn: substring () Fungere

Det fn: substring () funktion opretter en substring fra en kilde Snor ved de angivne start- og slutindekser. Vi bruger det sådan:

7.12. Det fn: substringAfter () Fungere

Det fn: substringAfter () funktion kontrollerer en kilde Snor for en given substring og returnerer Snor straks efter den første forekomst af det specificerede underlag.

Vi bruger det sådan:

7.13. Det fn: substringBefore () Fungere

Det fn: substringBefore () funktion kontrollerer en kilde Snor for en given substring og returnerer Snor lige før den første forekomst af det angivne underlag.

På vores JSP-side vil det se sådan ud:

7.14. Det fn: toLowerCase () Fungere

Det fn: to LowerCase () funktion transformerer alle tegn i en Snor til små bogstaver og kan bruges på denne måde:

7.15. Det fn: toUpperCase () Fungere

Det fn: toUpperCase () funktion transformerer alle tegn i en Snor til store bogstaver:

7.16. Det fn: trim () Fungere

Det fn: trim () funktion fjerner forudgående og efterfølgende hvide rum i a Snor:

9. Konklusion

I denne omfattende artikel har vi kigget på de forskellige JSTL-tags, og hvordan man bruger dem.

Som sædvanligt kan kodeuddrag findes på GitHub.