JSTL (JSP standarta tagu bibliotēkas) apmācība: Core & Pielāgotu tagu piemēri

Satura rādītājs:

Anonim

JSTL ir JSP standarta tagu bibliotēka. Šeit mēs redzēsim, kā dažādu JSTL tagu izmantošana atvieglos JSP kodēšanu.

Šajā apmācībā jūs uzzināsiet

  • Kas ir JSTL
  • JSTL kodols
  • JSP pielāgotie tagi

Kas ir JSTL?

JSTL nozīmē Java servera lapu standarta tagu bibliotēku, un tā ir pielāgotu JSP tagu bibliotēku kolekcija, kas nodrošina kopēju tīmekļa izstrādes funkcionalitāti.

JSTL priekšrocības

  1. Standarta tags : tas nodrošina bagātīgu JSP lapu pārnēsājamās funkcionalitātes slāni. Izstrādātājam ir viegli saprast kodu.
  2. Kods veikls un tīrs : Tā kā scenāriji mulsina izstrādātāju, JSTL izmantošana padara kodu veiklu un tīru.
  3. Automātiskais Javabeans interpekcijas atbalsts : Tam ir JSTL priekšrocība salīdzinājumā ar JSP skriptiem. JSTL Expression valoda ļoti viegli apstrādā JavaBean kodu. Mums nav nepieciešams pazemināt objektus, kas ir izgūti kā piemēroti atribūti. JSP skriptu koda izmantošana būs sarežģīta, un JSTL ir vienkāršojis šo mērķi.
  4. Cilvēkiem vieglāk lasīt : JSTL pamatā ir XML, kas ir ļoti līdzīgs HTML. Tādējādi izstrādātājiem to ir viegli saprast.
  5. Datoriem vieglāk saprast : tādi rīki kā Dreamweaver un priekšējā lapa ģenerē arvien vairāk HTML kodu. HTML rīki lieliski palīdz formatēt HTML kodu. HTML kods tiek sajaukts ar scriplet kodu. Tā kā JSTL tiek izteikts kā XML saderīgi tagi, HTML paaudzei dokumentā ir viegli parsēt JSTL kodu.

JSTL kodols

Galvenie tagi ir JSP visbiežāk izmantotie tagi. Tie nodrošina atbalstu

  • Atkārtojums
  • Nosacījuma loģika
  • Nozvejas izņēmums
  • url uz priekšu
  • Pāradresācija utt.

Lai izmantotu galvenos tagus, mums vispirms ir jādefinē tagu bibliotēka, un zemāk ir sintakse, lai iekļautu tagu bibliotēku.

Sintakse:

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

Šeit,

  • prefiksu var izmantot, lai definētu visus galvenos tagus un
  • uri ir taglib bibliotēka, no kuras tā tiek importēta

Ļaujiet detalizēti apskatīt dažus galvenos tagus,

1. Iziet:

  • Izteiksmes rezultāts tiek parādīts tagā out
  • Tas var tieši izvairīties no XML tagiem. Tādējādi tie netiek vērtēti kā faktiskie tagi

Sintakse:

  • Šeit vērtība norāda izejas informāciju, un tā ir obligāta
  • Noklusējums ir informācijas neizraidīšana, un tā nav obligāta
  • escapeXML - tā ir taisnība, ja tā izvairās no XML rakstzīmēm.

Piemērs:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Galvenais tags JSP1 <ķermenis>

Koda skaidrojums:

3. koda rindiņa: Šis taglib prefikss ir nepieciešams visiem tagiem, un pievienotais prefikss ir “c”. Tādējādi to var izmantot kā prefiksu visiem koretagiem.

12. koda rindiņa: Šeit mēs izmantojam koretagu ar prefiksu "c", un tas izdrukās izteiksmes taga vērtību. Tādējādi izeja būs nosaukums

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:

Izeja:

  • Mēs iegūstam vērtību kā nosaukumu no galvenā taga "out", kas tiks drukāts izvades straumē.

2. Noķert

  • Tas uztver jebkuru izmetamu izņēmumu, kas notiek ķermenī un tiek parādīts kā izeja.
  • To izmanto kļūdu novēršanai un to novēršanai.

Sintakse:

Šeit var apzīmē mainīgā nosaukumu, kuram būs izmetams izņēmums.

Piemērs:

<% @ 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"%> Galvenais tags JSP2 <ķermenis><% int num = 10/0; %>Izņēmums ir: $ {guruException}

Koda skaidrojums:

3. koda rindiņa: Šis taglib prefikss ir nepieciešams visiem tagiem, un pievienotais prefikss ir “c”, tāpēc to var izmantot kā prefiksu visiem koretagiem

Kodu rinda 11-13: Coretag nozveja tiek izmantota, lai noķertu izņēmumu un izdrukātu izņēmumu. Šeit izņēmums tiek izvirzīts, kad 10/0, un šim izņēmumam ir nosaukums "guruException".

14. koda rindiņa: mēs drukājam “guruException”.

Izpildot kodu, tiks parādīta šāda izeja:

Izeja:

  • Mēs iegūstam aritmētisko izņēmumu kā / ar nulli, un tas tiek izdrukāts izvadē, izmantojot mainīgo "guruException"

3. Imports

  • Mēs varam importēt citu faila saturu JSP lapā, tāpat kā mēs to darījām JSP include action.
  • Šeit mēs varam iekļaut arī URL un saturs tiks parādīts šajā lapā.

Sintakse:

Šeit var ir mainīgā nosaukums, kas ir identifikators, kas satur faila nosaukumu / uri.

uri ir relatīvais faila nosaukums vai urinam.

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"%> Galvenais tags JSP 31 <ķermenis>

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Ievietojiet virsrakstu šeit <ķermenis> Pēc importēšanas fails tiek diplayed 

Koda skaidrojums:

Coretag_jsp31.jsp

3. koda rindiņa: Šis taglib prefikss ir nepieciešams visiem tagiem, un pievienotais prefikss ir “c”, tāpēc to var izmantot kā prefiksu visiem koretagiem

Kodu rinda 11-12: Šeit mēs importējam failu coretag_jsp32.jsp, izmantojot importēšanas tagu

Koda rindiņa13: Šeit mēs drukājam failu coretag_jsp32.jsp, izmantojot tagu out.

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja.

Izeja:

  • Coretag_jsp32 tiek izdrukāts izvadē, jo šis fails tika importēts coretag_jsp31.jsp.

4. katram

  • To izmanto, lai atkārtotu elementu skaitu paziņojumu sērijās.
  • Tas ir tāds pats kā Java forloop.

Sintakse:

  • Šeit var apzīmē mainīgā nosaukumu, kuram būs skaitītāja nosaukums
  • Sākums ir skaitītāja sākuma vērtība
  • Beigas attēlos tā galīgo vērtību

Piemērs:

<% @ 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"%> Galvenais tags JSP4 <ķermenis>

Koda skaidrojums:

3. koda rindiņa: Šis taglib prefikss ir nepieciešams visiem tagiem, un pievienotais prefikss ir “c”, tāpēc to var izmantot kā prefiksu visiem koretagiem

Koda rinda 11-13: Šeit mēs izmantojam cilpu "forEach", kur mainīgā nosaukums ir "gurucount", kura sākās skaitīt kā 5 un beigu skaits kā 10. Mēs drukājam mainīgo gurucount, kura skaitļi sākas no 5 līdz 10.

Izpildot kodu, tiek parādīta šāda izeja

Izeja:

  • Rezultāts, kuru mēs iegūstam, sākas no 5 līdz 10.

5. Ja

  • To izmanto apstākļu testēšanai.
  • Ja tagu izmanto, lai pārbaudītu nosacījumu, vai tas ir patiess vai nav, pamatojoties uz to, koda bloks tiks izpildīts.

Sintakse:

<% @ 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"%> Galvenais tags JSP5 <ķermenis>

Koda skaidrojums:

3. koda rindiņa: Šis taglib prefikss ir nepieciešams visiem tagiem, un pievienotais prefikss ir “c”, tāpēc to var izmantot kā prefiksu visiem koretagiem

11. koda rindiņa: Šeit mēs iestatām mainīgo, kas nosaukts kā skaits, uz 100

Kodu rinda 12-14: Šeit mēs izmantojam "if condition", kur mēs pārbaudām, vai skaits ir vienāds ar 100. Tas ir vienāds ar 100, tad mēs iegūstam rezultātu kā "Skaits ir 100".

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja

Izeja:

  • Tā kā nosacījums "ja" ir patiess, mēs iegūstam rezultātu kā "Skaits ir 100".

6. novirzīšana:

  • To izmanto pašreizējās lapas novirzīšanai uz citu URL, norādot šī taga relatīvo URL.
  • Tas atbalsta konteksta relatīvos URL

Sintakse:

Šeit URL ir relatīvais URL, uz kuru tas ir jānovirza, un vietējās tīmekļa lietojumprogrammas konteksta nosaukums.

Piemērs:

<% @ 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"%> Galvenais tags JSP6 <ķermenis>

Koda skaidrojums:

3. koda rindiņa: Šis taglib prefikss ir nepieciešams visiem tagiem, un pievienotais prefikss ir “c”, tāpēc to var izmantot kā prefiksu visiem koretagiem

11. koda rindiņa: Šeit mēs izmantojam "novirzīšanas tagu", kur mēs norādām URL nosaukumu, un, noklikšķinot uz šīs lapas, tas novirza uz vietni, kas ir piešķirta novirzīšanai.

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja;

Izeja:

  • Mēs iegūstam izejas guru99.com URL, kuru novirza coretag_jsp6.jsp

JSP pielāgotie tagi

  • Tas ir lietotāja definēts JSP valodas elements.
  • Kad JSP tiek tulkots servletī, pielāgotais tags tiek pārveidots par klasi, kas veic darbību ar objektu, un tiek izsaukta kā tagu apstrādātājs.
  • Tīmekļa konteiners izsauc šīs darbības, kad tiek izpildīta servletīkls.
  • Lai izveidotu lietotāja definētu pielāgotu tagu, mums ir jāizveido tagu apstrādātājs, kas paplašinās SimpleTagSupport un būs jāpārņem doTag () metode.
  • Mums ir jāizveido TLD, kur mums ir jāiezīmē klases fails TLD.

Pielāgoto tagu priekšrocības JSP:

  • Pārnēsājama - tagu bibliotēkā aprakstītajai darbībai jābūt izmantojamai jebkurā JSP konteinerā.
  • Vienkārši - nesarežģītiem lietotājiem ir jāspēj saprast un izmantot šo mehānismu. JSP funkcionalitātes pārdevējiem ir viegli padarīt to pieejamu lietotājiem kā darbībām.
  • Izteiksmīgs - mehānismam jāatbalsta plašs darbību klāsts, ieskaitot ligzdotas darbības, skriptu elementus darbības ķermeņos, skriptu mainīgo izveidi, izmantošanu un atjaunināšanu.
  • Izmantojams no dažādām skriptu valodām - kaut arī JSP specifikācija pašlaik nosaka skriptu semantiku tikai Java programmēšanas valodā, mēs vēlamies atstāt atvērtu iespēju izmantot citas skriptu valodas.
  • Balstīts uz esošajiem jēdzieniem un mehānismiem - mēs nevēlamies izgudrot whatexists citur. Mēs arī vēlamies izvairīties no konfliktiem nākotnē, kad vien tos varam paredzēt

Sintakse:

Apsveriet, vai mēs izveidojam tagu testGuru, un mēs varam izmantot klasi handgertlertestTag, kas ignorēs doTag () metodi.

Class testTag extends SimpleTagSupport{ public void doTag()}

Turklāt mums būs jāatzīmē šī testTag klase TLD (Tagu bibliotēkas deskriptors), jo JSP konteiners automātiski izveidos kartēšanu starp klases failu un uri, kas tika pieminēts TLD failā.

JSP tagu saskarne

  • Šai klasei būs jāpaplašina SimpleTagSupport klase.
  • Šai klasei būs jānoņem doTag () metode, kas ir daļa no klases SimpleTagSupport (ignorēšana ir metode, kas tiek mantota no vecāku klases).
  • Šī saskarne ir JSPTag saskarnes apakš saskarne.
  • Tas nodrošina metodes, kas jāveic taga sākumā un beigās.
  • Turklāt mums šī karte ir jāattēlo TLD, ti, tagu bibliotēkas deskriptorā

Apsveram tālāk sniegtajā piemērā

Taga saskarnes metode

  • doTag () ir metode, kas mums jāignorē un kurai būs taga saturs.
  • Tas aizņem pašreizējo JSP kontekstu, izmantojot getJSPContext ()

Piemērs:

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"%> Pielāgots tags <ķermenis>

Custom.tld

 1.0  2.0 <īss nosaukums> Pārbaudīt TLD <īss nosaukums> guruTags  demotest.guruTag  tukšs 

guruTag.java (TagHandler)

paketes demotest;importēt javax.servlet.jsp.tagext. *;importēt javax.servlet.jsp. *;importēt java.io. *;publiskās klases guruTag paplašina SimpleTagSupport {public void doTag () met JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("Guru tags");}}

Koda skaidrojums:

guruTag.java (TagHandler)

Kodu rinda 6: guruTag klase paplašina SimpleTagSupport klasi, kas atrodas javax.servlet.JSP burkā

Kodu rinda 7: Šeit mēs ignorējam doTag () metodi, kas met JspException un IOException.

Kodu rinda 9-10: Šajā metodē kods tiks iegults pielāgotajā tagā, kas tiks izsaukts. Mēs paņemam objektu JspWriter, un tas izdrukās "Guru Tag".

Custom.tld

6. koda rindiņa: pielāgotā taga nosaukums ir “guruTag”.

7. koda rindiņa: Tagu klase ir taghandlerclass, ti, guruTag.java. Tas aizņem visu apstrādātāja faila ceļu, kas ietver faila atrašanās vietas direktorija ceļu.

Customtag_jsp1.jsp

3. koda rindiņa : Šis taglib prefikss ir nepieciešams visiem tagiem, un pievienotais prefikss ir “ex”, tāpēc to var izmantot kā prefiksu visiem koretagiem, un uri ir custom.tld, kas iezīmē tagu apstrādātāju.

11. koda rindiņa: Šeit mēs definējam pielāgoto tagu "guruTag", kas izsauks apstrādātāja klases metodi doTag (), un tajā esošais kods tiks izpildīts.

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja

Izeja:

  • Mēs iegūstam izvadi kā "GuruTag" no guruTag.java, ti, TagHandler, kas ignorē doTag () metodi un izdrukā "Guru Tag" kā izvadi.

Kopsavilkums:

  • Šajā sadaļā mēs uzzinājām par JSP standarta tagu bibliotēku, kurā mēs izveidojām galvenos tagus un pielāgotos tagus.
  • Galvenie tagi ietver, ja, novirzīšanai, importēšanai, nozvejas tagus, kas bija tagi, kurus JSP izmantoja pamata mērķiem.
  • Mēs arī veicām pielāgotus tagus, kuros mēs varam definēt tagus un izmantot tos JSP