JSTL („JSP Standard Tag Library“) mokymo programa: „Core & Tinkintų žymų pavyzdžiai

Turinys:

Anonim

JSTL yra standartinė JSP žymenų biblioteka. Čia pamatysime, kaip naudojant įvairias JSTL žymas bus lengviau JSP koduoti.

Šioje pamokoje sužinosite

  • Kas yra JSTL
  • JSTL šerdis
  • JSP pasirinktinės žymos

Kas yra JSTL?

JSTL reiškia „Java“ serverio puslapių standartinę žymų biblioteką ir tai yra pasirinktinių JSP žymų bibliotekų rinkinys, teikiantis bendrą žiniatinklio kūrimo funkciją.

JSTL pranašumai

  1. Standartinė žyma : ji suteikia daugybę nešiojamųjų JSP puslapių funkcijų. Kūrėjui lengva suprasti kodą.
  2. Kodas tvarkingas ir švarus : Kadangi scenarijai klaidina kūrėją, naudojant JSTL kodas tampa tvarkingas ir švarus.
  3. Automatinė „Javabeans“ apklausa : JSTL turi pranašumų prieš JSP scenarijus. „JSTL Expression“ kalba labai lengvai valdo „JavaBean“ kodą. Mums nereikia žeminti objektų, kurie buvo gauti kaip aprėpti atributai. JSP scenarijų kodo naudojimas bus sudėtingas, o JSTL supaprastino šį tikslą.
  4. Žmonėms lengviau skaityti : JSTL yra pagrįstas XML, kuris yra labai panašus į HTML. Taigi kūrėjams tai lengva suprasti.
  5. Kompiuteriams lengviau suprasti : tokie įrankiai kaip „Dreamweaver“ ir pagrindinis puslapis sugeneruoja vis daugiau HTML kodo. HTML įrankiai puikiai formuoja HTML kodą. HTML kodas yra sumaišytas su scriplet kodu. Kadangi JSTL išreiškiamas XML suderinamomis žymomis, HTML generavimui lengva analizuoti JSTL kodą dokumente.

JSTL šerdis

Pagrindinės žymos yra dažniausiai naudojamos JSP žymos. Jie teikia paramą

  • Kartojimas
  • Sąlyginė logika
  • Sugavimo išimtis
  • URL į priekį
  • Peradresavimas ir kt.

Norėdami naudoti pagrindines žymas, pirmiausia turime apibrėžti žymų biblioteką, o žemiau yra sintaksė, skirta įtraukti žymų biblioteką.

Sintaksė:

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

Čia

  • prefiksas gali būti naudojamas apibrėžti visas pagrindines žymas ir
  • uri yra taglib biblioteka, iš kurios ji yra importuojama

Leiskite išsamiai pamatyti kai kurias pagrindines žymas,

1. Išėjimas:

  • Išraiškos rezultatas rodomas žymoje out
  • Tai gali tiesiogiai išvengti XML žymų. Taigi jie nėra vertinami kaip tikrosios žymos

Sintaksė:

  • Čia reikšmė atspindi informaciją išvestyje, ir ji yra privaloma
  • Numatytasis yra informacijos nepateikimas ir tai nėra privaloma
  • escapeXML - tiesa, jei jis išvengia XML simbolių.

Pavyzdys:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Pagrindinė žyma JSP1 

Kodo paaiškinimas:

3 kodo eilutė: Šis taglib priešdėlis reikalingas visoms žymoms, o pridėtas priešdėlis yra „c“. Taigi, jis gali būti naudojamas kaip visų koretagų priešdėlis.

12 kodo eilutė: Čia mes naudojame „coretag“ su priešdėliu „c“ ir tai išspausdins reikšmę išraiškos žymoje. Taigi, išvestis bus pavadinimas

Vykdydami pirmiau nurodytą kodą gausite šį išvestį:

Išvestis:

  • Vertę kaip pavadinimą gauname iš pagrindinės žymos „out“, kuri bus spausdinama išvesties sraute.

2. Sugauti

  • Jis sugauna bet kokią išmetamą išimtį, kuri atsiranda kūne ir rodoma kaip išvestis.
  • Jis naudojamas klaidoms tvarkyti ir joms užfiksuoti.

Sintaksė:

Čia var rodo kintamojo pavadinimą, kuriam bus taikoma išimtis.

Pavyzdys:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Pagrindinė žyma JSP2 <% int num = 10/0; %>Išimtis yra: $ {guruException}

Kodo paaiškinimas:

3 kodo eilutė: Šis „taglib“ priešdėlis reikalingas visoms žymoms, o pridėtas priešdėlis yra „c“, todėl jis gali būti naudojamas kaip visų žymų etiketė

Kodo eilutė 11-13: „ Coretag“ gaudymas naudojamas gaudyti išimtį ir atspausdinti išimtį. Čia išimtis iškeliama, kai 10/0 ir ta išimtis turi pavadinimą „guruException“.

Kodo 14 eilutė: spausdiname „guruException“.

Vykdydami kodą gausite šią išvestį:

Išvestis:

  • Gauname aritmetinę išimtį kaip / pagal nulį, ir ji atspausdinama išvestyje naudojant kintamąjį „guruException“

3. Importas

  • Mes galime importuoti kitą failo turinį į JSP puslapį, kaip tai darėme JSP apima veiksmą.
  • Čia taip pat galime įtraukti URL ir turinys bus rodomas tame puslapyje.

Sintaksė:

Čia var yra kintamojo vardas, kuris yra identifikatorius, kuris laikys failo pavadinimą / uri.

uri yra santykinis failo vardas arba urinamas.

coretag_jsp31.jsp

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

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Čia įterpkite pavadinimą  Importavus failas pažymėtas diplomu 

Kodo paaiškinimas:

Coretag_jsp31.jsp

3 kodo eilutė: Šis „taglib“ priešdėlis reikalingas visoms žymoms, o pridėtas priešdėlis yra „c“, todėl jis gali būti naudojamas kaip visų žymų etiketė

Kodo eilutė 11-12: Čia mes importuojame failą coretag_jsp32.jsp į šį failą naudodami importo žymą

Kodo eilutė13: Čia spausdiname failą coretag_jsp32.jsp naudodami žymą out.

Vykdydami pirmiau nurodytą kodą, gausite šią išvestį.

Išvestis:

  • „Coretag_jsp32“ yra atspausdintas išvestyje, nes šis failas buvo importuotas koretag_jsp31.jsp.

4. kiekvienam

  • Jis naudojamas pakartoti elementų skaičių teiginių serijose.
  • Tai tas pats, kas Java forloop.

Sintaksė:

  • Čia var reiškia kintamojo pavadinimą, kuris turės skaitiklio pavadinimą
  • Pradžia reiškia skaitiklio pradžios vertę
  • Pabaiga parodys jo galutinę vertę

Pavyzdys:

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

Kodo paaiškinimas:

3 kodo eilutė: Šis „taglib“ priešdėlis reikalingas visoms žymoms, o pridėtas priešdėlis yra „c“, todėl jis gali būti naudojamas kaip visų žymų etiketė

Kodo eilutė 11-13: Čia mes naudojame „forEach“ kilpą, kur kintamojo pavadinimas yra „gurucount“, kuris prasidėjo skaičiumi 5 ir pabaigos skaičiumi kaip 10. Mes spausdiname kintamąjį gurucount, kurio skaičiai prasideda nuo 5 iki 10.

Vykdydami kodą gausite šią išvestį

Išvestis:

  • Gaunamas rezultatas yra nuo 5 iki 10.

5. Jei

  • Jis naudojamas bandymų sąlygoms.
  • Jei žyma naudojama sąlygai patikrinti, ar ji yra teisinga, ar ne, tai bus vykdoma.

Sintaksė:

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

Kodo paaiškinimas:

3 kodo eilutė: Šis „taglib“ priešdėlis reikalingas visoms žymoms, o pridėtas priešdėlis yra „c“, todėl jis gali būti naudojamas kaip visų žymų etiketė

11 kodo eilutė: Čia mes nustatome kintamąjį, pavadintą skaičiumi, į 100

Kodo eilutė 12-14: Čia mes naudojame "if condition", kur mes tikriname, ar skaičius yra lygus 100. Jis yra lygus 100, tada gauname išvestį kaip "Count 100".

Vykdydami pirmiau nurodytą kodą, gausite šią išvestį

Išvestis:

  • Kadangi sąlyga „jei“ yra teisinga, gauname išvestį kaip „Skaičius yra 100“.

6. peradresuoti:

  • Jis naudojamas dabartiniam puslapiui peradresuoti į kitą URL, pateikiant santykinį šios žymos URL.
  • Jis palaiko kontekstinius URL

Sintaksė:

Čia URL yra santykinis URL, į kurį jis turi būti nukreiptas, ir vietinės žiniatinklio programos konteksto pavadinimas.

Pavyzdys:

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

Kodo paaiškinimas:

3 kodo eilutė: Šis „taglib“ priešdėlis reikalingas visoms žymoms, o pridėtas priešdėlis yra „c“, todėl jis gali būti naudojamas kaip visų žymų etiketė

Kodo 11 eilutė: Čia mes naudojame „peradresavimo žymą“, kur nurodome URL pavadinimą, o spustelėjus tą puslapį jis nukreipia į svetainę, kuri buvo skirta peradresuoti.

Vykdydami pirmiau nurodytą kodą, gausite šią išvestį;

Išvestis:

  • Gauname išvesties guru99.com URL, kurį nukreipia coretag_jsp6.jsp

JSP pasirinktinės žymos

  • Tai vartotojo apibrėžtas JSP kalbos elementas.
  • Kai JSP yra išverčiamas į servletą, pasirinktinė žyma paverčiama klase, kuri imasi veiksmų su objektu ir vadinama žymų tvarkytuvu.
  • Tuos veiksmus, kai vykdoma servletė, iškviečia žiniatinklio sudėtinis rodinys.
  • Norėdami sukurti vartotojo apibrėžtą priskirtą žymą, turime sukurti žymų tvarkytuvę, kuri pratęs „SimpleTagSupport“ ir turės nepaisyti „doTag“ () metodo.
  • Turime sukurti TLD, kur turime susieti klasės failą TLD.

Individualių žymių JSP pranašumai:

  • Nešiojamas - veiksmas, aprašytas žymių bibliotekoje, turi būti naudojamas bet kuriame JSP sudėtiniame rodinyje.
  • Paprasta - nesudėtingi vartotojai turi mokėti suprasti ir naudoti šį mechanizmą. JSP funkcionalumo pardavėjams turi būti lengva padaryti jį prieinamą vartotojams kaip veiksmus.
  • Išraiškingas - mechanizmas turi palaikyti platų veiksmų spektrą, įskaitant įdėtus veiksmus, scenarijų elementus veiksmo kūnuose, scenarijų kintamųjų kūrimą, naudojimą ir atnaujinimą.
  • Galima naudoti iš skirtingų scenarijų kalbų - Nors JSP specifikacijose šiuo metu scenarijų semantika apibrėžta tik „Java“ programavimo kalba, mes norime palikti atvirą kitų scenarijų kalbų galimybę.
  • Sukurtas pagal esamas koncepcijas ir mechanizmus . Mes nenorime iš naujo išrasti whatexistų kitur. Be to, norime išvengti būsimų konfliktų, kai tik galime juos numatyti

Sintaksė:

Apsvarstykite, ar kuriame „testGuru“ žymą, ir galime naudoti klasę „handlertestTag“, kuri pakeis „doTag“ () metodą.

Class testTag extends SimpleTagSupport{ public void doTag()}

Taip pat turėsime susieti šią „testTag“ klasę TLD („Tag Library Descriptor“), nes JSP konteineris automatiškai sukurs susiejimą tarp klasės failo ir uri, kuris buvo paminėtas TLD faile.

JSP žymos sąsaja

  • Ši klasė turės išplėsti „SimpleTagSupport“ klasę.
  • Ši klasė turės nepaisyti doTag () metodo, kuris yra „SimpleTagSupport“ klasės dalis („overriding“ yra metodas, paveldėtas iš tėvų klasės).
  • Ši sąsaja yra JSPTag sąsajos papildoma sąsaja.
  • Jame pateikiami metodai, kuriuos reikia atlikti žymos pradžioje ir pabaigoje.
  • Be to, turime susieti šią klasę su TLD, ty Žymų bibliotekos aprašu

Mes svarstome toliau pateiktame pavyzdyje

Žymų sąsajos metodas

  • „doTag“ () yra metodas, kurį turime nepaisyti ir kuriame bus žymos turinys.
  • Reikia dabartinio JSP konteksto naudojant getJSPContext ()

Pavyzdys:

Customtag_jsp1.jsp

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

Custom.tld

 1.0  2.0 
 Testuoti TLD 

 guruTagas  demotest.guruTag  tuščias 

guruTag.java („TagHandler“)

paketo demotest;importuoti javax.servlet.jsp.tagext. *;importuoti javax.servlet.jsp. *;importuoti java.io. *;viešosios klasės „guruTag“ išplečia „SimpleTagSupport“ {public void doTag () meta JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println („Guru Tag“);}}

Kodo paaiškinimas:

guruTag.java („TagHandler“)

Kodo eilutė 6: „ guruTag“ klasė plečia „SimpleTagSupport“ klasę, esančią javax.servlet.JSP indelyje

7 kodo eilutė: Čia mes viršijame doTag () metodą, kuris išmeta JspException ir IOException.

Kodo eilutė 9-10: Šiuo metodu kodas bus įterptas į pasirinktinę žymą, kuri bus vadinama. Paimame „JspWriter“ objektą, kuris atspausdins „Guru Tag“.

Custom.tld

6 kodo eilutė: čia tinkintos žymos pavadinimas yra „guruTag“.

7 kodo eilutė: žymos klasė yra taghandlerclass, ty guruTag.java. Tai užima visą tvarkyklės failo kelią, kuriame yra failo vietos katalogo kelias.

Customtag_jsp1.jsp

3 kodo eilutė : Šis „taglib“ priešdėlis reikalingas visoms žymoms, o pridėtas priešdėlis yra „ex“, todėl jį galima naudoti kaip visų koretagų priešdėlį, o uri yra custom.tld, kuris žymi žymų tvarkytuvą.

11 kodo eilutė: Čia mes apibrėžiame pasirinktinę žymą „guruTag“, kuri iškvies „handler class“ metodą „doTag ()“ ir joje bus vykdomas kodas.

Vykdydami pirmiau nurodytą kodą, gausite šią išvestį

Išvestis:

  • Gauname išvestį kaip „GuruTag“ iš „guruTag.java“, ty „TagHandler“, kuris pakeičia „doTag“ () metodą ir spausdina „Guru Tag“ kaip išvestį.

Santrauka:

  • Šiame skyriuje mes sužinojome apie JSP standartinių žymų biblioteką, kurioje atlikome pagrindines žymas ir tinkintas žymas.
  • Pagrindinės žymos apima, jei nukreipti, importuoti, sugavimo žymes, kurios buvo pagrindiniams tikslams naudojamos žymos JSP.
  • Be to, mes padarėme pasirinktines žymas, kuriose mes galime apibrėžti žymas ir naudoti jas JSP