JSTL (JSP Standard Tag Library) Opplæring: Core & Eksempler på tilpassede tagger

Innholdsfortegnelse:

Anonim

JSTL er et standard tagbibliotek for JSP. Her vil vi se hvordan bruk av forskjellige JSTL-koder vil gjøre JSP-koding enklere.

I denne veiledningen vil du lære-

  • Hva er JSTL
  • JSTL Core
  • JSP tilpassede koder

Hva er JSTL?

JSTL står for Java-server sider standard tag bibliotek, og det er en samling av tilpassede JSP tag biblioteker som gir vanlig webutviklingsfunksjonalitet.

Fordeler med JSTL

  1. Standard tag : Det gir et rikt lag av den bærbare funksjonaliteten til JSP-sider. Det er enkelt for en utvikler å forstå koden.
  2. Kode ryddig og rent : Ettersom scriplets forvirrer utvikler, gjør bruken av JSTL koden ryddig og ren.
  3. Automatisk støtte for JavabeansInterospection: Den har en fordel med JSTL i forhold til JSP-scriptlets. JSTL Expression språk håndterer JavaBean-kode veldig enkelt. Vi trenger ikke å nedkjempe objektene, som er hentet som omfangsattributter. Å bruke JSP scriptlets-kode vil være komplisert, og JSTL har forenklet formålet.
  4. Lettere for mennesker å lese : JSTL er basert på XML, som er veldig lik HTML. Derfor er det lett å forstå for utviklerne.
  5. Enklere å forstå datamaskiner : Verktøy som Dreamweaver og forsiden genererer mer og mer HTML-kode. HTML-verktøy gjør en god jobb med å formatere HTML-kode. HTML-koden er blandet med scriplet-koden. Ettersom JSTL uttrykkes som XML-kompatible koder, er det enkelt for HTML-generering å analysere JSTL-koden i dokumentet.

JSTL Core

Kjernekodene er oftest brukte koder i JSP. De gir støtte til

  • Iterasjon
  • Betinget logikk
  • Fangst unntak
  • url fremover
  • Viderekobling, etc.

For å bruke kjernekoder må vi definere taggbiblioteket først og nedenfor er syntaksen for å inkludere et tagbibliotek.

Syntaks:

<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core%>

Her,

  • prefikset kan brukes til å definere alle kjernekoder og
  • uri er biblioteket med taglib det importeres fra

La oss se noen av kjernekodene i detalj,

1. Ut:

  • Resultat av uttrykk vises i ut-koden
  • Det kan rømme XML-kodene direkte. Derfor blir de ikke vurdert som faktiske koder

Syntaks:

  • Her representerer verdien informasjon til utgangen, og den er obligatorisk
  • Standard er manglende informasjon, og det er ikke obligatorisk
  • escapeXML - Det er sant hvis det unnslipper XML-tegn.

Eksempel:

Coretag_jsp1.jsp

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Kjernemerke JSP1 

Forklaring av koden:

Kodelinje 3: Dette taglib-prefikset er obligatorisk for alle tagger, og prefikset som legges til er 'c'. Derfor kan den brukes som et prefiks for alle coretags.

Kodelinje 12: Her bruker vi coretag ut med prefikset "c", og dette vil skrive ut verdien i uttrykkstaggen. Derfor vil utdata være navn

Når du utfører koden ovenfor, får du følgende utgang:

Produksjon:

  • Vi får verdien som et navn fra kjernemerket "ut" som vil skrives ut i utgangsstrømmen.

2. Fangst

  • Det fanger ethvert kastbart unntak som forekommer i kroppen og viser som utgang.
  • Den brukes til å håndtere feilene og fange dem.

Syntaks:

Her representerer var navnet på variabelen, som vil ha kastbart unntak.

Eksempel:

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP2 <% int num = 10/0; %>Unntaket er: $ {guruException}

Forklaring av koden:

Kodelinje 3: Dette taglib-prefikset er obligatorisk for alle tagger, og prefikset som er lagt til er 'c', og det kan derfor brukes som et prefiks for alle coretags

Kodelinje 11-13: Coretag-fangst brukes til å fange unntaket og skrive ut unntaket. Her heves unntaket når 10/0 og det unntaket har navnet "guruException".

Kodelinje 14: Vi skriver ut "guruException".

Når du utfører koden, får du følgende utdata:

Produksjon:

  • Vi får aritmetisk unntak som / ved null, og det skrives ut i utdataene ved hjelp av variabelen "guruException"

3. Importer

  • Vi kan importere et annet filinnhold til en JSP-side som vi gjorde i JSP inkluderer handling.
  • Her kan vi også inkludere URL og innholdet vil bli vist på den siden.

Syntaks:

Her er var et variabelnavn som er en identifikator som vil holde filnavnet / uri.

uri er relativt filnavn eller urinnavn.

coretag_jsp31.jsp

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Kjernemerke JSP 31 

Coretag_jsp32.jsp

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Sett inn tittel her  Filen er forsinket etter import 

Forklaring av koden:

Coretag_jsp31.jsp

Kodelinje 3: Dette taglib-prefikset er obligatorisk for alle tagger, og prefikset som er lagt til er 'c', og det kan derfor brukes som et prefiks for alle coretags

Kodelinje 11-12: Her importerer vi coretag_jsp32.jsp-filen til denne filen ved hjelp av importkoden

Kode Line13: Her skriver vi ut filen coretag_jsp32.jsp med ut-taggen.

Når du utfører koden ovenfor, får du følgende utdata.

Produksjon:

  • Coretag_jsp32 skrives ut i utdata da denne filen ble importert i coretag_jsp31.jsp.

4. forEach

  • Den brukes til å gjenta antall elementer i utsagnsserier.
  • Det er det samme som en Java forloop.

Syntaks:

  • Her representerer var variabelnavn som vil inneholde motnavn
  • Begin representerer motbegynnelsesverdi
  • End vil representere sluttverdien

Eksempel:

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP4 

Forklaring av koden:

Kodelinje 3: Dette taglib-prefikset er obligatorisk for alle tagger, og prefikset som er lagt til er 'c', og det kan derfor brukes som et prefiks for alle coretags

Kodelinje 11-13: Her bruker vi "forEach" -sløyfe der variabelnavnet er "gurucount", som har begynt å telle som 5 og slutt teller som 10. Vi skriver ut den variable gurucount som har tall som starter fra 5 til 10.

Når du utfører koden, får du følgende utdata

Produksjon:

  • Produksjonen vi får starter fra 5 til 10.

5. Hvis

  • Den brukes til testforhold.
  • Hvis taggen brukes til å teste en tilstand om den er sant eller ikke basert på dette, vil kodeblokken bli utført.

Syntaks:

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP5 

Forklaring av koden:

Kodelinje 3: Dette taglib-prefikset er obligatorisk for alle tagger, og prefikset som er lagt til er 'c', og det kan derfor brukes som et prefiks for alle coretags

Kodelinje 11: Her setter vi variabelen som heter count til 100

Kodelinje 12-14: Her bruker vi "if condition" der vi sjekker om tellingen er lik 100. Det er lik 100 så får vi utdata som "Tellingen er 100."

Når du utfører koden ovenfor, får du følgende utdata

Produksjon:

  • Siden "hvis" -tilstanden er sant, får vi utdataene som "Antallet er 100".

6. viderekobling:

  • Den brukes til å omdirigere den nåværende siden til en annen URL ved å oppgi den relative URL-en til denne taggen.
  • Den støtter kontekst relative URL-er

Syntaks:

Her er url relativ url som den må omdirigeres til og kontekstnavn på den lokale webapplikasjonen.

Eksempel:

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Kjernemerke JSP6 

Forklaring av koden:

Kodelinje 3: Dette taglib-prefikset er obligatorisk for alle tagger, og prefikset som er lagt til er 'c', og det kan derfor brukes som et prefiks for alle coretags

Kodelinje 11: Her bruker vi "viderekoblingskode", der vi spesifiserer urlnavn, og når vi klikker på den siden, omdirigeres det til nettsted som er gitt for omdirigering.

Når du utfører koden ovenfor, får du følgende utdata;

Produksjon:

  • Vi får utdata guru99.com url som blir omdirigert av coretag_jsp6.jsp

JSP tilpassede koder

  • Det er et brukerdefinert JSP-språkelement.
  • Når JSP oversettes til en servlet, konverteres egendefinert tag til en klasse som tar handling på et objekt og kalles som en tagbehandler.
  • Disse handlingene når servletten kjøres, påkalles av webcontaineren.
  • For å opprette den brukerdefinerte egendefinerte taggen, må vi opprette taggbehandleren som utvider SimpleTagSupport og må overstyre doTag () -metoden.
  • Vi må lage TLD der vi trenger å kartlegge klassefilen i TLD.

Fordeler med tilpassede koder i JSP:

  • Bærbar - En handling beskrevet i et tagbibliotek må være brukbar i alle JSP-containere.
  • Enkelt - Usofistikerte brukere må kunne forstå og bruke denne mekanismen. Leverandører av JSP-funksjonalitet må ha lett for å gjøre den tilgjengelig for brukere som handlinger.
  • Uttrykksfull - Mekanismen må støtte et bredt spekter av handlinger, inkludert hekkede handlinger, skriptelementer i handlingsorganer, oppretting, bruk og oppdatering av skriptvariabler.
  • Brukbar fra forskjellige skriptspråk - Selv om JSP-spesifikasjonen for øyeblikket bare definerer semantikk for skript på Java-programmeringsspråket, vil vi la muligheten for andre skriptspråk være åpen.
  • Bygget på eksisterende konsepter og maskiner - Vi ønsker ikke å gjenoppfinne hvitexister andre steder. Vi vil også unngå fremtidige konflikter når vi kan forutsi dem

Syntaks:

Tenk på at vi lager testGuru-tag, og vi kan bruke taglertestTag-klassen, som vil overstyre doTag () -metoden.

Class testTag extends SimpleTagSupport{ public void doTag()}

Vi må også kartlegge denne testTag-klassen i TLD (Tag Library Descriptor), da JSP-container automatisk lager en kartlegging mellom klassefilen og uri som er nevnt i TLD-filen.

JSP-grensesnitt

  • Denne klassen må utvide SimpleTagSupport-klassen.
  • Denne klassen må overstyre doTag () -metoden som er en del av SimpleTagSupport-klassen (overstyring er en metode som arves fra foreldreklassen).
  • Dette grensesnittet er et undergrensesnitt til JSPTag-grensesnittet.
  • Det gir metoder for å utføre i begynnelsen og slutten av koden.
  • Vi må også kartlegge denne klassen i TLD, dvs. Tag Library-deskriptoren

Vi vurderer i eksemplet nedenfor

Metode for taggrensesnitt

  • doTag () er en metode som vi trenger å overstyre som vil ha innholdet for koden.
  • Det tar gjeldende JSP-kontekst ved hjelp av getJSPContext ()

Eksempel:

Customtag_jsp1.jsp

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "ex" uri = "WEB-INF / custom.tld"%> Egendefinert tag 

Custom.tld

 1.0  2.0  Test TLD  guruTag  demotest.guruTag  tom 

guruTag.java (TagHandler)

demotest pakke;importere javax.servlet.jsp.tagext. *;importere javax.servlet.jsp. *;importer java.io. *;offentlig klasse guruTag utvider SimpleTagSupport {public void doTag () kaster JspException, IOException{JspWriter ut = getJspContext (). GetOut ();out.println ("Guru Tag");}}

Forklaring av koden:

guruTag.java (TagHandler)

Kodelinje 6: klassen guruTag utvider SimpleTagSupport-klassen som finnes i javax.servlet.JSP jar

Kodelinje 7: Her overstyrer vi doTag () -metoden som kaster JspException og IOException.

Kodelinje 9-10: I denne metoden vil koden bli innebygd i en tilpasset tag som vil bli kalt. Vi tar et objekt fra JspWriter, og det vil trykke "Guru Tag."

Custom.tld

Kodelinje 6: Her er navnet på den egendefinerte taggen "guruTag."

Kodelinje 7: Tagklasse er taghandlerclass, dvs. guruTag.java. Det tar full sti til behandlerfilen som inkluderer katalogbanen til plasseringen av filen.

Customtag_jsp1.jsp

Kodelinje 3 : Dette taglib-prefikset er påkrevd for alle tagger, og prefikset som er lagt til er 'ex', og det kan derfor brukes som prefiks for alle coretags, og uri er custom.tld som kartlegger taghåndtereren.

Kodelinje 11: Her definerer vi den tilpassede koden "guruTag", som vil kalle behandlerklassen doTag () -metoden, og koden i den vil bli utført.

Når du utfører koden ovenfor, får du følgende utdata

Produksjon:

  • Vi får utdataene som "GuruTag" fra guruTag.java dvs. TagHandler, som tilsidesetter doTag () -metoden og som skriver ut "Guru Tag" som utdata.

Sammendrag:

  • I denne delen lærte vi om JSP standard tagbibliotek der vi gjorde kjernekoder og tilpassede koder.
  • Kjernekoder inkluderer for, hvis, omdirigering, import, fangstkoder som var koder som ble brukt til grunnleggende formål i JSP.
  • Vi gjorde også tilpassede koder der vi kan definere kodene og bruke den i JSP