JSTL (JSP Standard Tag Library) õpetus: Core & Kohandatud siltide näited

Lang L: none (table-of-contents):

Anonim

JSTL on JSP standardne sildikogu. Siin näeme, kuidas erinevate JSTL-i siltide kasutamine muudab JSP-kodeerimise lihtsamaks.

Selles õpetuses saate teada

  • Mis on JSTL
  • JSTL tuum
  • JSP kohandatud sildid

Mis on JSTL?

JSTL tähistab Java-serverilehtede standardset silditeeki ja see on kohandatud JSP-märgenditeekide kogu, mis pakub ühist veebiarenduse funktsionaalsust.

JSTL-i eelised

  1. Standard silt : See pakub rikkaliku kihi JSP-lehtede kaasaskantavat funktsionaalsust. Arendajal on koodist lihtne aru saada.
  2. Kood puhas ja puhas : Kuna skriptid ajavad arendaja segadusse, muudab JSTL-i kasutamine koodi puhtaks ja puhtaks.
  3. Automaatne Javabeansi läbivaatuse tugi : sellel on JSTL-i eelis JSP-skriptide ees. JSTL Expression keel saab JavaBeani koodiga hakkama väga lihtsalt. Me ei pea objekte allalaadima, mis on leitud ulatusega atribuutidena. JSP-skriptide koodi kasutamine on keeruline ja JSTL on seda eesmärki lihtsustanud.
  4. Inimeste jaoks on seda lihtsam lugeda : JSTL põhineb XML-il, mis on HTML-iga väga sarnane. Seega on arendajatel seda hõlpsasti mõista.
  5. Arvutite jaoks on seda lihtsam mõista : sellised tööriistad nagu Dreamweaver ja esileht genereerivad üha rohkem HTML-koodi. HTML-tööriistad saavad HTML-koodi vormindamisel suurepäraselt hakkama. HTML-kood on segatud scriplet-koodiga. Kuna JSTL on väljendatud XML-iga ühilduvate siltidena, on HTML-i genereerimisel JSTL-koodi dokumendis lihtne sõeluda.

JSTL tuum

Põhisildid on JSP-s kõige sagedamini kasutatavad sildid. Nad pakuvad tuge

  • Kordus
  • Tingimuslik loogika
  • Saagi erand
  • URL edasi
  • Suunamine jne.

Põhisiltide kasutamiseks peame kõigepealt määratlema märgenditeegi ja allpool on siltide teegi kaasamise süntaks.

Süntaks:

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

Siin,

  • eesliidet saab kasutada kõigi põhisiltide ja
  • uri on taglibi teek, kust see imporditakse

Vaatame üksikasjalikumalt mõnda põhisilti,

1. Välja:

  • Väljenditulemus kuvatakse sildil out
  • See pääseb XML-siltidest otse välja. Seega ei hinnata neid tegelike siltidena

Süntaks:

  • Siin väärtus tähistab väljundi teavet ja see on kohustuslik
  • Vaikimisi on teabe väljastamine ebaõnnestumine ja see pole kohustuslik
  • escapeXML - see on tõsi, kui see põgeneb XML-tähemärkidest.

Näide:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Põhimärgend JSP1 

Koodi selgitus:

Koodirida 3: See taglib-prefiks on vajalik kõigi siltide jaoks ja lisatud eesliide on 'c'. Seega saab seda kasutada kõigi koretagide eesliitena.

Koodirida 12: Siin kasutame coretag välja eesliitega "c" ja see välja trükib avaldise märgendi väärtuse. Seega on väljundiks nimi

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Väljund:

  • Saame väärtuse nimena põhisiltilt "välja", mis prinditakse väljundvoogu.

2. Saak

  • See tabab kõik kehas esinevad viskavad erandid, mis kuvatakse väljundina.
  • Seda kasutatakse vigade käsitlemiseks ja nende tabamiseks.

Süntaks:

Siin var tähistab muutuja nime, mis on visatav erand.

Näide:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Põhimärgend JSP2 <% int arv = 10/0; %>Erand on: $ {guruException}

Koodi selgitus:

Koodirida 3: See taglib-prefiks on vajalik kõigi siltide jaoks ja lisatud eesliide on 'c', seega saab seda kasutada kõigi koretagide eesliitena

Koodirida 11-13: Erandi püüdmiseks ja erandi printimiseks kasutatakse koretagilist saagi. Siin tõstetakse erand, kui 10/0 ja sellel erandil on nimi "guruException".

Koodirida 14: Trükime "guruException".

Koodi käivitamisel saate järgmise väljundi:

Väljund:

  • Aritmeetiline erand saadakse nulliga / nulliga ja see trükitakse väljundisse muutujaga "guruException"

3. Import

  • Saame JSP-lehele importida veel ühe faili sisu, nagu tegime JSP-faili toimingus.
  • Siit saame lisada ka URL-i ja sisu kuvatakse sellel lehel.

Süntaks:

Siin var on muutuja nimi, mis on identifikaator, mis hoiab failinime / uri.

uri on suhteline failinimi või uriname.

coretag_jsp31.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Põhimärgend JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Sisesta siia pealkiri  Fail imporditakse diplomeeritult 

Koodi selgitus:

Coretag_jsp31.jsp

Koodirida 3: See taglib-prefiks on vajalik kõigi siltide jaoks ja lisatud eesliide on 'c', seega saab seda kasutada kõigi koretagide eesliitena

Koodirida 11-12: siin imporditakse faili coretag_jsp32.jsp impordimärgendi abil

Koodirida13: Siin trükime faili coretag_jsp32.jsp, kasutades silti out.

Ülaltoodud koodi käivitamisel saate järgmise väljundi.

Väljund:

  • Coretag_jsp32 trükitakse väljundisse, kuna see fail imporditi kausta coretag_jsp31.jsp.

4. igaühele

  • Seda kasutatakse lausete seerias elementide arvu kordamiseks.
  • See on sama mis Java forloop.

Süntaks:

  • Siin var tähistab muutuja nime, mis hoiab loenduri nime
  • Algus tähistab loenduri algusväärtust
  • Lõpp tähistab selle lõppväärtust

Näide:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Põhimärgend JSP4 

Koodi selgitus:

Koodirida 3: See taglib-prefiks on vajalik kõigi siltide jaoks ja lisatud eesliide on 'c', seega saab seda kasutada kõigi koretagide eesliitena

Koodirida 11-13: siin kasutame silmus "forEach", kus muutuja nimi on "gurucount", mida on hakatud loendama 5-ks ja lõpp-loendiks 10. Trükime muutuja gurucount, mille numbrid algavad 5-st 10-ni.

Koodi käivitamisel saate järgmise väljundi

Väljund:

  • Väljund, mille saame, algab vahemikus 5 kuni 10.

5. Kui

  • Seda kasutatakse tingimuste testimiseks.
  • Kui märgendit kasutatakse tingimuse testimiseks, kas see on tõene või mitte, siis käivitatakse koodiplokk.

Süntaks:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Põhimärgend JSP5 

Koodi selgitus:

Koodirida 3: See taglib-prefiks on vajalik kõigi siltide jaoks ja lisatud eesliide on 'c', seega saab seda kasutada kõigi koretagide eesliitena

Koodirida 11: Siin määrame loendiks nimetatud muutuja väärtuseks 100

Koodirida 12-14: siin kasutame "if tingimus", kus kontrollime, kas loend on võrdne 100-ga. See on võrdne 100-ga, siis saame väljundi kui "Loend on 100".

Ülaltoodud koodi käivitamisel saate järgmise väljundi

Väljund:

  • Kuna tingimus "kui" on tõene, saame väljundi kui "Loend on 100".

6. ümbersuunamine:

  • Seda kasutatakse praeguse lehe ümbersuunamiseks teisele URL-ile, pakkudes selle märgendi suhtelist URL-i.
  • See toetab konteksti suhtelisi URL-e

Süntaks:

Siin on URL suhteline URL, kuhu see tuleb suunata, ja kohaliku veebirakenduse kontekstinimi.

Näide:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefiks = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Põhimärgend JSP6 

Koodi selgitus:

Koodirida 3: See taglib-prefiks on vajalik kõigi siltide jaoks ja lisatud eesliide on 'c', seega saab seda kasutada kõigi koretagide eesliitena

Koodirida 11: Siin kasutame "ümbersuunamismärgendit", kus määrame URL-i nime ja kui klõpsame sellel lehel, suunatakse see saidile, mis on antud ümbersuunamiseks.

Ülaltoodud koodi käivitamisel saate järgmise väljundi;

Väljund:

  • Saame väljundi guru99.com URL, mille ümbersuunab coretag_jsp6.jsp

JSP kohandatud sildid

  • See on kasutaja määratletud JSP-keeleelement.
  • Kui JSP tõlgitakse servletiks, teisendatakse kohandatud silt klassiks, mis tegeleb objektiga ja mida nimetatakse siltide käitlejaks.
  • Need toimingud servleti käivitamisel käivitavad veebikonteiner.
  • Kasutaja määratletud kohandatud sildi loomiseks peame looma sildi käitleja, mis laiendab SimpleTagSupport ja peame alistama meetodi doTag ().
  • Peame looma TLD-i, kus peame klassi faili TLD-s kaardistama.

JSP-s kohandatud siltide eelised:

  • Kaasaskantav - siltide teegis kirjeldatud toiming peab olema kasutatav igas JSP konteineris.
  • Lihtne - kogenematud kasutajad peavad suutma seda mehhanismi mõista ja kasutada. JSP-funktsionaalsuse pakkujatel peab olema lihtne seda kasutajatele toimingutena kättesaadavaks teha.
  • Ekspressiivne - mehhanism peab toetama mitmesuguseid toiminguid, sealhulgas pesastatud toiminguid, skriptielemente tegevuskehades, skriptimuutujate loomist, kasutamist ja ajakohastamist.
  • Kasutatav erinevatest skriptikeeltest - kuigi JSP spetsifikatsioon määratleb praegu skriptide semantika ainult Java programmeerimiskeeles, tahame jätta võimaluse skripti teiste keelte jaoks.
  • Olemasolevatele kontseptsioonidele ja masinatele tuginedes - me ei taha whatexiste mujal leiutada. Samuti soovime vältida tulevasi konflikte alati, kui suudame neid ennustada

Süntaks:

Mõelgem, et loome testGuru silti ja saame kasutada klassi handgertestTag, mis alistab doTag () meetodi.

Class testTag extends SimpleTagSupport{ public void doTag()}

Samuti peame selle testTagi klassi kaardistama TLD-s (Tag Library Descriptor), kuna JSP konteiner loob automaatselt kaardifaili klassi uri ja uri vahel, mida on mainitud TLD-failis.

JSP sildiliides

  • See klass peab laiendama klassi SimpleTagSupport.
  • See klass peab alistama meetodi doTag (), mis on osa SimpleTagSupport klassist (ülekaal on meetod, mis on päritud vanemklassilt).
  • See liides on JSPTagi liidese alaliides.
  • See pakub meetodeid sildi alguses ja lõpus toimimiseks.
  • Samuti peame selle klassi kaardistama TLD-s, st Tag Library deskriptoris

Vaatleme allpool toodud näites

Sildi liidese meetod

  • doTag () on meetod, mille peame alistama ja millel on sildi sisu.
  • See võtab praeguse JSP-konteksti, kasutades getJSPContext ()

Näide:

Kohandatud silt_jsp1.jsp

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

Kohandatud.tld

 1.0  2.0  TLD testimine  guruTag  demotest.guruTag  tühi 

guruTag.java (TagHandler)

paketi demotest;impordi javax.servlet.jsp.tagext. *;import javax.servlet.jsp. *;import java.io. *;avaliku klassi guruTag laiendab SimpleTagSupport {public void doTag () viskab JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("Guru silt");}}

Koodi selgitus:

guruTag.java (TagHandler)

Koodirida 6: guruTag-klass laiendab klassi SimpleTagSupport, mis asub javax.servlet.JSP-i purgis

Koodirida 7: Siin on meil ülimuslik doTag () meetod, mis loob JspExceptioni ja IOExceptioni.

Koodirida 9-10: Selle meetodi korral manustatakse kood kohandatud sildile, mida kutsutakse. Võtame objekti JspWriter ja see trükib "Guru Tag".

Kohandatud.tld

Koodirida 6: siin on kohandatud märgendi nimi "guruTag".

Koodirida 7: Siltide klass on taghandlerclass, st guruTag.java. See võtab kogu käitlejafaili tee, mis sisaldab faili asukoha kataloogitee.

Kohandatud silt_jsp1.jsp

Koodirida 3 : See taglibi eesliide on vajalik kõigi siltide jaoks ja lisatud eesliide on "ex", seega saab seda kasutada kõigi koretagide eesliitena ja uri on custom.tld, mis kaardistab märgendi käitlejat.

Koodirida 11: Siin määratleme kohandatud sildi "guruTag", mis kutsub käitleja klassi doTag () meetodit ja selles olev kood käivitatakse.

Ülaltoodud koodi käivitamisel saate järgmise väljundi

Väljund:

  • Väljund saadakse "GuruTag" kujul guruTag.java st TagHandlerilt, mis alistab doTag () meetodi ja mis väljundina trükib "Guru Tag".

Kokkuvõte:

  • Selles jaotises õppisime tundma JSP-i standardsete siltide kogu, milles tegime põhisildid ja kohandatud sildid.
  • Põhimärgendid hõlmavad if if, ümbersuunamise, impordi, püügimärgendeid, mis olid JSP-s põhieesmärkidel kasutatud sildid.
  • Samuti tegime kohandatud sildid, kus saame määratleda sildid ja kasutada seda JSP-s