JSTL (JSP Standard Tag Library) -opetusohjelma: ydin ja amp; Muokattuja tunnisteita

Sisällysluettelo:

Anonim

JSTL on JSP: n tavallinen tagikirjasto. Täällä näemme, kuinka eri JSTL-tunnisteiden käyttö helpottaa JSP-koodausta.

Tässä opetusohjelmassa opit-

  • Mikä on JSTL
  • JSTL-ydin
  • JSP-mukautetut tunnisteet

Mikä on JSTL?

JSTL tarkoittaa Java-palvelinsivujen vakiotunnistekirjastoa, ja se on kokoelma mukautettuja JSP-tunnuskirjastoja, jotka tarjoavat yleisiä verkkokehitystoimintoja.

JSTL: n edut

  1. Vakiotunniste : Se tarjoaa monipuolisen kerroksen JSP-sivujen kannettavista toiminnoista. Kehittäjän on helppo ymmärtää koodi.
  2. Koodipuhdas ja puhdas : Koska scripletit sekoittavat kehittäjän, JSTL: n käyttö tekee koodista siistin ja puhtaan.
  3. Automaattinen Javabeans -tarkastustuki : Sillä on JSTL : n etu verrattuna JSP-komentosarjoihin. JSTL Expression -kieli käsittelee JavaBean-koodin erittäin helposti. Meidän ei tarvitse peittää objekteja, jotka on haettu määriteltyinä määritteinä. JSP-komentosarjakoodin käyttäminen on monimutkaista, ja JSTL on yksinkertaistanut tätä tarkoitusta.
  4. Ihmisille helpompi lukea : JSTL perustuu XML: ään, joka on hyvin samanlainen kuin HTML. Siksi kehittäjien on helppo ymmärtää.
  5. Tietokoneiden on helpompi ymmärtää : Työkalut, kuten Dreamweaver ja etusivu, tuottavat yhä enemmän HTML-koodia. HTML-työkalut tekevät hienoa työtä HTML-koodin muotoilussa. HTML-koodi sekoitetaan scriplet-koodiin. Koska JSTL ilmaistaan ​​XML-yhteensopivina tunnisteina, HTML-sukupolven on helppo jäsentää JSTL-koodi asiakirjassa.

JSTL-ydin

Ydintunnisteet ovat JSP: ssä yleisimmin käytettyjä tunnisteita. Ne tarjoavat tukea

  • Toisto
  • Ehdollinen logiikka
  • Saalispoikkeus
  • URL eteenpäin
  • Uudelleenohjaus jne.

Ydintunnisteiden käyttämiseksi meidän on ensin määritettävä tag-kirjasto ja alla on syntaksin tag-kirjaston sisällyttäminen.

Syntaksi :

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

Tässä,

  • etuliitettä voidaan käyttää kaikkien ydintunnisteiden ja
  • uri on taglib-kirjasto, josta se tuodaan

Katsotaanpa joitain ydintunnisteita yksityiskohtaisesti,

1. Ulos:

  • Lausekkeen tulos näkyy out-tagissa
  • Se voi välttää suoraan XML-tunnisteet. Siksi niitä ei arvioida todellisina tunnisteina

Syntaksi:

  • Tässä arvo edustaa tietoa tuotokselle, ja se on pakollinen
  • Oletus on tietojen toimittamisen epäonnistuminen, eikä se ole pakollista
  • escapeXML - On totta, jos se pakenee XML-merkkejä.

Esimerkki:

Coretag_jsp1.jsp

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

Koodin selitys:

Koodirivi 3: Tämä taglib-etuliite vaaditaan kaikille tunnisteille ja lisätty etuliite on 'c'. Siksi sitä voidaan käyttää etuliitteenä kaikille ytimille.

Koodirivi 12: Tässä käytetään coretag-tunnusta etuliitteellä "c", ja tämä tulos tulostaa lauseketunnuksen arvon. Siksi tulos on nimi

Kun suoritat yllä olevan koodin, saat seuraavan tuloksen:

Tuotos:

  • Saamme arvon nimenä ydintunnisteesta "out", joka tulostetaan lähtövirtaan.

2. Saalis

  • Se saa kiinni kaikista heitettävistä poikkeuksista, jotka esiintyvät kehossa ja näkyvät tuotoksena.
  • Sitä käytetään virheiden käsittelemiseen ja niiden selvittämiseen.

Syntaksi:

Tässä var tarkoittaa muuttujan nimeä, joka pitää heitettävän poikkeuksen.

Esimerkki:

<% @ 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"%> Ydintunniste JSP2 <% int numero = 10/0; %>Poikkeus on: $ {guruException}

Koodin selitys:

Koodirivi 3: Tämä taglib-etuliite vaaditaan kaikille tunnisteille ja lisätty etuliite on 'c', joten sitä voidaan käyttää etuliitteenä kaikille coretag-tunnisteille

Koodirivi 11-13: Coretag-salpaa käytetään poikkeuksen saamiseen ja poikkeuksen tulostamiseen. Tässä poikkeus nousee, kun 10/0 ja tällä poikkeuksella on nimi "guruException".

Koodirivi 14: Tulostamme "guruException".

Kun suoritat koodin, saat seuraavan tuloksen:

Tuotos:

  • Saamme aritmeettisen poikkeuksen muodossa / nolla, ja se tulostetaan tulosteessa muuttujan "guruException" avulla

3. Tuo

  • Voimme tuoda toisen tiedoston sisällön JSP-sivulle, kuten teimme JSP include action -toiminnolla.
  • Täällä voimme myös sisällyttää URL-osoitteen ja sisältö näkyy tällä sivulla.

Syntaksi:

Tässä var on muuttujan nimi, joka on tunniste, joka pitää tiedostonimen / uri.

uri on suhteellinen tiedostonimi tai uriname.

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"%> Ydintunniste JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Lisää otsikko tähän  Tiedosto kopioidaan tuonnin jälkeen 

Koodin selitys:

Coretag_jsp31.jsp

Koodirivi 3: Tämä taglib-etuliite vaaditaan kaikille tunnisteille ja lisätty etuliite on 'c', joten sitä voidaan käyttää etuliitteenä kaikille coretag-tunnisteille

Koodirivi 11-12: Tässä tuomme coretag_jsp32.jsp-tiedoston tähän tiedostoon tuontitunnisteen avulla

Koodirivi13: Tässä tulostetaan tiedosto coretag_jsp32.jsp out-tagilla.

Kun suoritat yllä olevan koodin, saat seuraavan tuloksen.

Tuotos:

  • Coretag_jsp32 tulostetaan tulosteessa, koska tämä tiedosto tuotiin coretag_jsp31.jsp-tiedostossa.

4. jokaiselle

  • Sitä käytetään elementtien lukumäärän toistamiseen lauseissa.
  • Se on sama kuin Java forloop.

Syntaksi:

  • Tässä var tarkoittaa muuttujan nimeä, joka sisältää laskurin nimen
  • Alku edustaa laskurin alkamisarvoa
  • Loppu edustaa loppuarvoa

Esimerkki:

<% @ 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"%> Ydintunniste JSP4 

Koodin selitys:

Koodirivi 3: Tämä taglib-etuliite vaaditaan kaikille tunnisteille ja lisätty etuliite on 'c', joten sitä voidaan käyttää etuliitteenä kaikille coretag-tunnisteille

Koodirivi 11-13: Tässä käytetään "forEach" -silmukkaa, jossa muuttujan nimi on "gurucount", joka on alkanut laskea 5: ksi ja loppujen lukumääräksi 10. Tulostamme muuttujan gurucount, jolla on numerot alkaen 5: stä 10: een.

Kun suoritat koodin, saat seuraavan tuloksen

Tuotos:

  • Saamamme tuotos alkaa välillä 5-10.

5. Jos

  • Sitä käytetään olosuhteiden testaamiseen.
  • Jos tagia käytetään ehdon testaamiseen, onko se totta vai ei tämän perusteella, koodilohko suoritetaan.

Syntaksi:

<% @ 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"%> Ydintunniste JSP5 

Koodin selitys:

Koodirivi 3: Tämä taglib-etuliite vaaditaan kaikille tunnisteille ja lisätty etuliite on 'c', joten sitä voidaan käyttää etuliitteenä kaikille coretag-tunnisteille

Koodirivi 11: Tässä asetetaan muuttujaksi nimetty muuttuja 100: ksi

Koodirivi 12-14: Tässä käytetään "if condition" -kohtaa, jossa tarkistamme, onko lukumäärä yhtä suuri kuin 100. Se on yhtä suuri kuin 100, jolloin tulos saadaan nimellä "Luku on 100".

Kun suoritat yllä olevan koodin, saat seuraavan tuloksen

Tuotos:

  • Koska ehto "jos" on tosi, saamme tuotoksen muodossa "Luku on 100".

6. uudelleenohjaus:

  • Sitä käytetään nykyisen sivun uudelleenohjaamiseen toiseen URL-osoitteeseen antamalla tämän tagin suhteellinen URL-osoite.
  • Se tukee suhteellisia URL-osoitteita

Syntaksi:

Tässä URL on suhteellinen URL, johon se on ohjattava, ja paikallisen verkkosovelluksen kontekstinimi.

Esimerkki:

<% @ 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"%> Ydintunniste JSP6 

Koodin selitys:

Koodirivi 3: Tämä taglib-etuliite vaaditaan kaikille tunnisteille ja lisätty etuliite on 'c', joten sitä voidaan käyttää etuliitteenä kaikille coretag-tunnisteille

Koodirivi 11: Tässä käytetään "uudelleenohjaustunnistetta", jossa määritetään URL-osoite, ja kun napsautamme kyseistä sivua, se ohjaa uudelleenohjausta varten annettuun sivustoon.

Kun suoritat yllä olevan koodin, saat seuraavan tuloksen;

Tuotos:

  • Saamme tulosteen guru99.com URL-osoitteen, jonka ohjaa coretag_jsp6.jsp

JSP-mukautetut tunnisteet

  • Se on käyttäjän määrittelemä JSP-kielielementti.
  • Kun JSP käännetään servletiksi, mukautettu tunniste muunnetaan luokaksi, joka suorittaa objektin toimintaa ja jota kutsutaan tagien käsittelijäksi.
  • Web-säilö käyttää niitä toimintoja, kun servlet-sovellus suoritetaan.
  • Käyttäjän määrittelemän mukautetun tunnisteen luomiseksi meidän on luotava tunnistekäsittelijä, joka laajentaa SimpleTagSupport-ohjelmaa ja joutuu ohittamaan doTag () -menetelmän.
  • Meidän on luotava TLD, johon meidän on kartoitettava luokkatiedosto TLD: ssä.

Muokattujen tagien edut JSP: ssä:

  • Kannettava - Tagikirjastossa kuvatun toiminnon on oltava käytettävissä kaikissa JSP-säilöissä.
  • Yksinkertainen - Kokemattomien käyttäjien on kyettävä ymmärtämään ja käyttämään tätä mekanismia.JSP-toiminnallisuuden toimittajien on löydettävä se helposti käyttäjille saatavana toimina.
  • Ilmeikäs - mekanismin on tuettava monenlaisia ​​toimintoja, mukaan lukien sisäkkäiset toiminnot, komentosarjaelementit toimintorunkojen sisällä, komentosarjamuuttujien luominen, käyttö ja päivittäminen.
  • Käytettävissä eri komentosarjakielillä - Vaikka JSP-määrittely määrittelee tällä hetkellä vain Java-ohjelmointikielen komentosarjojen semantiikan, haluamme jättää mahdollisuuden muille komentosarjakielille.
  • Olemassa olevien käsitteiden ja koneiden pohjalta - emme halua keksiä whatexistejä muualla. Haluamme myös välttää tulevia konflikteja aina kun voimme ennustaa niitä

Syntaksi:

Harkitse, että luomme testGuru-tunnisteen ja voimme käyttää handlertestTag-luokkaa, joka ohittaa doTag () -menetelmän.

Class testTag extends SimpleTagSupport{ public void doTag()}

Meidän on myös kartoitettava tämä testTag-luokka TLD: ssä (Tag Library Descriptor), koska JSP-säilö luo automaattisesti kartoituksen luokkatiedoston ja uri: n välillä, joka on mainittu TLD-tiedostossa.

JSP Tag Interface

  • Tämän luokan on laajennettava SimpleTagSupport-luokkaa.
  • Tämän luokan on korvattava doTag () -menetelmä, joka on osa SimpleTagSupport-luokkaa (ohittaminen on menetelmä, joka on peritty vanhemmalta luokalta).
  • Tämä liitäntä on JSPTag-käyttöliittymän aliliitäntä.
  • Se tarjoaa menetelmät tagin alussa ja lopussa.
  • Lisäksi meidän on kartoitettava tämä luokka TLD: ssä eli Tag Library -kuvaaja

Harkitsemme alla olevassa esimerkissä

Tag-käyttöliittymän menetelmä

  • doTag () on menetelmä, joka meidän on ohitettava ja jolla on tagin sisältö.
  • Se vie nykyisen JSP-kontekstin käyttämällä getJSPContext ()

Esimerkki:

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"%> Oma tunniste 

Custom.tld

 1.0  2.0  Testaa TLD  guruTag  demotest.guruTag  tyhjä 

guruTag.java (TagHandler)

paketin demotest;tuo javax.servlet.jsp.tagext. *;tuo javax.servlet.jsp. *;tuo java.io. *;julkisen luokan guruTag laajentaa SimpleTagSupport {public void doTag () heittää JspExceptionin, IOExceptionin{JspWriter out = getJspContext (). GetOut ();out.println ("Guru-tunniste");}}

Koodin selitys:

guruTag.java (TagHandler)

Koodirivi 6: guruTag-luokka laajentaa SimpleTagSupport-luokkaa, joka on javax.servlet.JSP-purkissa

Koodirivi 7: Tässä ohitetaan doTag () -menetelmä, joka heittää JspExceptionin ja IOExceptionin.

Koodirivi 9-10: Tässä menetelmässä koodi upotetaan mukautettuun tagiin, jota kutsutaan. Otamme JspWriter-objektin, joka tulostaa "Guru-tunnisteen".

Custom.tld

Koodirivi 6: Tässä mukautetun tagin nimi on "guruTag".

Koodirivi 7: Tag-luokka on taghandlerclass, eli guruTag.java. Se vie koko käsittelijätiedoston polun, joka sisältää tiedoston sijaintihakemistopolun.

Customtag_jsp1.jsp

Koodirivi 3 : Tämä taglib-etuliite vaaditaan kaikille tunnisteille, ja lisätty etuliite on 'ex', joten sitä voidaan käyttää etuliitteenä kaikille ytimen tunnisteille ja uri on custom.tld, joka kartoittaa tunnisteen käsittelijän.

Koodirivi 11: Tässä määritellään mukautettu tunniste "guruTag", joka kutsuu handler-luokan doTag () -metodia ja sen koodi suoritetaan.

Kun suoritat yllä olevan koodin, saat seuraavan tuloksen

Tuotos:

  • Saamme tuotoksen nimellä "GuruTag" osoitteesta guruTag.java eli TagHandler, joka ohittaa doTag () -menetelmän ja joka tulostaa "Guru Tag" -lähdön.

Yhteenveto:

  • Tässä osassa opimme JSP: n vakiotunnistekirjastosta, jossa teimme ydintunnisteet ja mukautetut tunnisteet.
  • Ydintunnisteet sisältävät if-redirect, import, catch-tunnisteet, jotka olivat JSP: ssä perustarkoituksiin käytettyjä tunnisteita.
  • Teimme myös mukautettuja tunnisteita, joissa voimme määrittää tunnisteet ja käyttää sitä JSP: ssä