Vadnica za JSTL (JSP Standard Tag Library): Core & Primeri oznak po meri

Kazalo:

Anonim

JSTL je standardna knjižnica oznak JSP. Tu bomo videli, kako bo uporaba različnih oznak JSTL olajšala kodiranje JSP.

V tej vadnici boste izvedeli-

  • Kaj je JSTL
  • JSTL jedro
  • Oznake JSP po meri

Kaj je JSTL?

JSTL je kratica za knjižnico standardnih oznak strani strežnika Java in je zbirka knjižnic oznak JSP po meri, ki zagotavljajo skupno funkcionalnost spletnega razvoja.

Prednosti JSTL

  1. Standardna oznaka : Zagotavlja bogat sloj prenosne funkcionalnosti strani JSP. Razvijalec enostavno razume kodo.
  2. Koda je čista in čista : Ker skripti zmedejo razvijalca, uporaba JSTL naredi kodo urejeno in čisto.
  3. Samodejna podpora za JavabeansInterospection : Ima prednost JSTL pred skripti JSP. Jezik JSTL Expression zelo enostavno obdeluje kodo JavaBean. Predmetov, ki so bili pridobljeni kot atributi obsega, ni treba znižati. Uporaba kode skriptov JSP bo zapletena in JSTL je ta namen poenostavil.
  4. Preprosto za ljudi : JSTL temelji na XML, ki je zelo podoben HTML-ju. Zato je razvijalcem enostavno razumeti.
  5. Računalniki lažje razumejo : orodja, kot sta Dreamweaver in naslovna stran, ustvarjajo vedno več kode HTML. Orodja HTML odlično formatirajo kodo HTML. Koda HTML se meša s kodo skripte. Ker je JSTL izražen kot oznake, skladne z XML, lahko generacija HTML enostavno razčleni kodo JSTL v dokumentu.

JSTL jedro

Osrednje oznake so najpogosteje uporabljene oznake v JSP. Zagotavljajo podporo za

  • Ponavljanje
  • Pogojna logika
  • Izjema ulova
  • url naprej
  • Preusmeritev itd.

Za uporabo osnovnih oznak moramo najprej definirati knjižnico oznak, spodaj pa je sintaksa, ki vključuje knjižnico oznak.

Sintaksa:

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

Tukaj,

  • predpono lahko uporabimo za definiranje vseh osnovnih oznak in
  • uri je knjižnica tagliba, iz katere je uvožen

Podrobno si oglejte nekatere ključne oznake,

1. Out:

  • Rezultat izraza je prikazan v oznaki out
  • Lahko neposredno uide oznakam XML. Zato se ne ocenjujejo kot dejanske oznake

Sintaksa:

  • Tu vrednost predstavlja podatke na izhodu in je obvezna
  • Privzeto je napaka pri izpisu informacij in ni obvezna
  • escapeXML - Res je, če uide znakom XML.

Primer:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Osnovna oznaka JSP1 

Pojasnilo kode:

Vrstica kode 3: Ta predpona taglib je potrebna za vse oznake, dodana predpona pa je "c". Zato se lahko uporablja kot predpona za vse ključne oznake.

Vrstica kode 12: Tu uporabljamo coretag out s predpono "c" in ta ven bo natisnil vrednost v oznaki izraza. Zato bo izhod ime

Ko zaženete zgornjo kodo, dobite naslednji izhod:

Izhod:

  • Vrednost kot ime dobimo iz jedrne oznake "out", ki se bo natisnila v izhodnem toku.

2. Ulov

  • Ujame vsako izjemo, ki jo je mogoče vrniti, ki se pojavi v telesu in se prikaže kot izhod.
  • Uporablja se za obdelavo napak in njihovo odkrivanje.

Sintaksa:

Tu var predstavlja ime spremenljivke, ki bo vsebovala izjemo, ki jo je mogoče vrniti.

Primer:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib predpona = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Osnovna oznaka JSP2 <% int num = 10/0; %>Izjema je: $ {guruException}

Pojasnilo kode:

Vrstica kode 3: Ta predpona taglib je obvezna za vse oznake, dodana predpona pa je "c", zato se lahko uporablja kot predpona za vse ključne oznake

Vrstica kode 11-13: Coretag catch se uporablja za ulov izjeme in tiskanje izjeme. Tu je izjema postavljena, ko je 10/0 in ta izjema ima ime "guruException".

14. vrstica kode: Tiskamo "guruException".

Ko zaženete kodo, boste dobili naslednji izhod:

Izhod:

  • Aritmetično izjemo dobimo kot / za nič in je natisnjena v izhodu s spremenljivko "guruException"

3. Uvoz

  • Na stran JSP lahko uvozimo drugo vsebino datoteke, kot smo to storili v JSP include action.
  • Sem lahko vključimo tudi URL in vsebina bo prikazana na tej strani.

Sintaksa:

Tu je var ime spremenljivke, ki je identifikator, ki bo vseboval ime datoteke / uri.

uri je relativno ime datoteke ali uriname.

coretag_jsp31.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib predpona = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Osnovna oznaka JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Sem vstavite naslov  Datoteka se po uvozu prikaže 

Pojasnilo kode:

Coretag_jsp31.jsp

Vrstica kode 3: Ta predpona taglib je obvezna za vse oznake, dodana predpona pa je "c", zato se lahko uporablja kot predpona za vse ključne oznake

Vrstica kode 11-12: Tu v datoteko uvozimo datoteko coretag_jsp32.jsp z uvozno oznako

Koda Line13: Tukaj tiskamo datoteko coretag_jsp32.jsp z uporabo oznake out.

Ko zaženete zgornjo kodo, dobite naslednji izhod.

Izhod:

  • Coretag_jsp32 je natisnjen v izhodni datoteki, saj je bila ta datoteka uvožena v coretag_jsp31.jsp.

4. forEach

  • Uporablja se za ponavljanje števila elementov v nizu stavkov.
  • Enako je kot Java forloop.

Sintaksa:

  • Tu var predstavlja ime spremenljivke, v katerem bo ime števca
  • Začetek predstavlja vrednost začetka števca
  • Konec bo predstavljal njegovo končno vrednost

Primer:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib predpona = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Osnovna oznaka JSP4 

Pojasnilo kode:

Vrstica kode 3: Ta predpona taglib je obvezna za vse oznake, dodana predpona pa je "c", zato se lahko uporablja kot predpona za vse ključne oznake

Vrstica kode 11-13: Tu uporabljamo zanko "forEach", kjer je ime spremenljivke "gurucount", ki se je začelo šteti kot 5 in končati kot 10. Tiskamo spremenljivko gurucount, ki ima številke od 5 do 10.

Ko zaženete kodo, dobite naslednji izhod

Izhod:

  • Rezultat, ki ga dobimo, se začne od 5 do 10.

5. Če

  • Uporablja se za preskusne pogoje.
  • Če se z oznako preizkusi stanje, ali je na podlagi tega resnično ali ne, se izvede blok kode.

Sintaksa:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib predpona = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Osnovna oznaka JSP5 

Pojasnilo kode:

Vrstica kode 3: Ta predpona taglib je obvezna za vse oznake, dodana predpona pa je "c", zato se lahko uporablja kot predpona za vse ključne oznake

Vrstica kode 11: Tu nastavimo spremenljivko z imenom count na 100

Vrstica kode 12-14: Tu uporabljamo "if condition", kjer preverjamo, ali je štetje enako 100. Enako je 100, potem dobimo izhod kot "Število je 100".

Ko zaženete zgornjo kodo, dobite naslednji izhod

Izhod:

  • Ker je pogoj "če" resničen, dobimo rezultat kot "Število je 100".

6. preusmeritev:

  • Uporablja se za preusmeritev trenutne strani na drug URL z zagotavljanjem relativnega URL-ja te oznake.
  • Podpira URL-je, povezane z kontekstom

Sintaksa:

Tu je url relativni URL, na katerega ga je treba preusmeriti, in ime konteksta lokalne spletne aplikacije.

Primer:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib predpona = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Osnovna oznaka JSP6 

Pojasnilo kode:

Vrstica kode 3: Ta predpona taglib je obvezna za vse oznake, dodana predpona pa je "c", zato se lahko uporablja kot predpona za vse ključne oznake

Vrstica kode 11: Tu uporabljamo "preusmeritveno oznako", kjer določimo ime URL-ja, in ko kliknemo to stran, preusmeri na spletno mesto, ki je bilo dano za preusmeritev.

Ko zaženete zgornjo kodo, dobite naslednji izhod;

Izhod:

  • Dobimo izhodni url guru99.com, ki ga preusmeri coretag_jsp6.jsp

Oznake JSP po meri

  • Je uporabniško določen jezikovni element JSP.
  • Ko je JSP preveden v strežniški programček, se oznaka po meri pretvori v razred, ki ukrepa nad objektom in se pokliče kot obdelovalec oznak.
  • Ta dejanja, ko se izvede strežniški program, prikliče spletni vsebnik.
  • Če želite ustvariti uporabniško določeno oznako po meri, moramo ustvariti obdelovalec oznak, ki bo razširil SimpleTagSupport in moral preglasiti metodo doTag ().
  • Ustvariti moramo TLD, kjer moramo preslikati datoteko razreda v TLD.

Prednosti oznak po meri v JSP:

  • Prenosljiv - dejanje, opisano v knjižnici oznak, mora biti uporabno v katerem koli vsebniku JSP.
  • Preprosto - nezahtevni uporabniki morajo biti sposobni razumeti in uporabljati ta mehanizem.Prodajalci funkcionalnosti JSP morajo z lahkoto omogočiti, da so na voljo kot dejanja.
  • Ekspresivno - mehanizem mora podpirati širok spekter dejanj, vključno z uglašenimi dejanji, skriptnimi elementi znotraj teles dejanj, ustvarjanjem, uporabo in posodabljanjem skriptnih spremenljivk.
  • Uporabno iz različnih skriptnih jezikov - čeprav specifikacija JSP trenutno definira samo semantiko skript v programskem jeziku Java, želimo pustiti odprto možnost za druge skriptne jezike.
  • Zasnovani na obstoječih konceptih in strojih - Nočemo, da bi bili kje drugje izumljeni. Prav tako se želimo izogniti prihodnjim konfliktom, kadar koli jih lahko predvidimo

Sintaksa:

Upoštevajte, da ustvarjamo oznako testGuru in lahko uporabimo razredtaghandlertestTag, ki bo preglasil metodo doTag ().

Class testTag extends SimpleTagSupport{ public void doTag()}

Ta razred testTag bomo morali preslikati v TLD (deskriptor knjižnice oznak), saj bo vsebnik JSP samodejno ustvaril preslikavo med datoteko razreda in uri, ki je bila omenjena v datoteki TLD.

Vmesnik za oznake JSP

  • Ta razred bo moral razširiti razred SimpleTagSupport.
  • Ta razred bo moral preglasiti metodo doTag (), ki je del razreda SimpleTagSupport (preglasitev je metoda, ki je podedovana od nadrejenega razreda).
  • Ta vmesnik je podvmesnik vmesnika JSPTag.
  • Zagotavlja metode za izvedbo na začetku in koncu oznake.
  • Prav tako moramo ta razred preslikati v TLD, tj. Deskriptor knjižnice oznak

Upoštevamo v spodnjem primeru

Metoda vmesnika oznake

  • doTag () je metoda, ki jo moramo preglasiti in ki bo vsebovala vsebino oznake.
  • Uporabi trenutni kontekst JSP z uporabo getJSPContext ()

Primer:

Customtag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib predpona = "ex" uri = "WEB-INF / custom.tld"%> Oznaka po meri 

Custom.tld

 1.0  2.0  Preizkusite TLD  guruTag  demotest.guruTag  prazno 

guruTag.java (TagHandler)

demotest paketa;uvoz javax.servlet.jsp.tagext. *;uvoz javax.servlet.jsp. *;uvoz java.io. *;javni razred guruTag razširja SimpleTagSupport {public void doTag () vrže JspException, IOException{JspWriter ven = getJspContext (). GetOut ();out.println ("Guru Tag");}}

Pojasnilo kode:

guruTag.java (TagHandler)

6. vrstica kode: razred guruTag razširja razred SimpleTagSupport, ki je prisoten v kozarcu javax.servlet.JSP

Vrstica kode 7: Tu prevladujemo doTag () metoda, ki vrže JspException in IOException.

Vrstica kode 9-10: Pri tej metodi bo koda vdelana v oznako po meri, ki bo poklicana. Vzamemo objekt JspWriterja, ki bo natisnil "Guru Tag."

Custom.tld

6. vrstica kode: Tu je ime oznake po meri "guruTag".

Vrstica kode 7: Razred oznake je taghandlerclass, tj. GuruTag.java. Zavzame celotno pot datoteke vodnika, ki vključuje pot imenika do lokacije datoteke.

Customtag_jsp1.jsp

Vrstica kode 3 : Ta predpona taglib je potrebna za vse oznake, dodana predpona pa je "ex", zato se lahko uporablja kot predpona za vse ključne oznake, uri pa custom.tld, ki preslika obdelovalec oznak.

Vrstica kode 11: Tu definiramo oznako po meri "guruTag", ki bo poklicala metodo razreda doTag () ravnatelja in koda v njej se bo izvedla.

Ko zaženete zgornjo kodo, dobite naslednji izhod

Izhod:

  • Izhod dobimo kot "GuruTag" iz guruTag.java, tj. TagHandler, ki preglasi metodo doTag () in ki kot izhod natisne "Guru Tag".

Povzetek:

  • V tem poglavju smo spoznali standardno knjižnico oznak JSP, v kateri smo izvajali osnovne oznake in oznake po meri.
  • Med ključne oznake spadajo oznake if, if, redirect, import, catch, ki so bile v JSP uporabljene za osnovne namene.
  • Prav tako smo naredili oznake po meri, v katerih smo jih lahko definirali in uporabili v JSP