JSTL (JSP Standard Tag Library) oktatóanyag: Core & Példák az egyéni címkékre

Tartalomjegyzék:

Anonim

A JSTL a JSP szabványos címkekönyvtára. Itt látni fogjuk, hogy a különböző JSTL címkék használata hogyan könnyíti meg a JSP kódolást.

Ebben az oktatóanyagban megtanulja-

  • Mi a JSTL
  • JSTL Core
  • JSP egyéni címkék

Mi az a JSTL?

A JSTL a Java szerver oldalak szabványos tagkönyvtárát jelenti, és ez egy egyedi JSP tag könyvtárak gyűjteménye, amelyek általános webfejlesztési funkciókat biztosítanak.

A JSTL előnyei

  1. Normál címke : Gazdag réteget biztosít a JSP oldalak hordozható funkcionalitásáról. A fejlesztő számára könnyű megérteni a kódot.
  2. Kód tiszta és tiszta : Mivel a szkriptek megzavarják a fejlesztőt, a JSTL használatával a kód tiszta és tiszta.
  3. Automatikus Javabeans-felkutatás támogatás : Előnye van a JSTL- nek a JSP szkriptekkel szemben. A JSTL Expression nyelv nagyon egyszerűen kezeli a JavaBean kódot. Nem kell lefokoznunk az objektumokat, amelyeket hatókör-attribútumként kaptunk le. A JSP szkriptek kódjának használata bonyolult lesz, és a JSTL egyszerűsítette ezt a célt.
  4. Könnyebben olvasható az emberek számára : A JSTL az XML-en alapul, amely nagyon hasonlít a HTML-re. Ezért a fejlesztők könnyen megértik.
  5. Könnyebben érthető a számítógépek számára : Az olyan eszközök, mint a Dreamweaver és a címlap, egyre több HTML-kódot generálnak. A HTML-eszközök nagyszerű munkát végeznek a HTML-kód formázásában. A HTML kód keveredik a scriplet kóddal. Mivel a JSTL-t XML-kompatibilis címkeként fejezik ki, a HTML-generálásnak könnyű elemeznie a dokumentumban található JSTL-kódot.

JSTL Core

Az alapcímkék a JSP-ben leggyakrabban használt címkék. Támogatást nyújtanak

  • Ismétlés
  • Feltételes logika
  • Fogási kivétel
  • url előre
  • Átirányítás stb.

Az alapcímkék használatához először meg kell határoznunk a címkekönyvtárat, és alább a szintaxis a címkekönyvtár beillesztésére.

Szintaxis:

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

Itt,

  • előtaggal meghatározható az összes törzscímke és
  • Az uri a taglib könyvtár, ahonnan importálják

Lássuk részletesen az alapcímkéket,

1. Ki:

  • A kifejezés eredménye megjelenik a kimenő címkében
  • Közvetlenül elkerülheti az XML címkéket. Ezért nem értékeljük őket tényleges címkékként

Szintaxis:

  • Itt az érték a kimenetre vonatkozó információt képviseli, és ez kötelező
  • Az alapértelmezés az információ kimenetének elmulasztása, és nem kötelező
  • escapeXML - Igaz, ha elkerüli az XML karaktereket.

Példa:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> JSP1 törzscímke 

A kód magyarázata:

3. kódsor : Ez a taglib előtag minden címkéhez kötelező, a hozzáadott előtag pedig „c”. Ennélfogva minden koretag előtagjaként használható.

12. kódsor : Itt a coretag-et használjuk a "c" előtaggal, és ez kinyomtatja a kifejezés címkéjének értékét. Ezért a kimenet neve lesz

A fenti kód végrehajtásakor a következő kimenetet kapja:

Kimenet:

  • Az értéket névként kapjuk meg a "out" törzscímkéből, amely a kimeneti adatfolyamba fog nyomtatni.

2. Fogás

  • Fog minden olyan dobható kivételt, amely a testben előfordul és kimenetként jelenik meg.
  • A hibák kezelésére és felfogására szolgál.

Szintaxis:

Itt a var a változó nevét jelenti, amely dobható kivételt tartalmaz.

Példa:

<% @ 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"%> JSP2 törzscímke <% int szám = 10/0; %>A kivétel: $ {guruException}

A kód magyarázata:

3. kódsor : Ez a taglib előtag szükséges minden címkéhez, és a hozzáadott előtag „c”, ezért minden koretag címkéjeként használható

Kódsor 11-13: A Coretag fogás a kivétel elfogására és a kivétel kinyomtatására szolgál. Itt a kivétel felmerül, amikor 10/0, és ennek a kivételnek a neve "guruException".

14. kódsor: Nyomtatjuk a "guruException" -t.

A kód végrehajtásakor a következő kimenetet kapja:

Kimenet:

  • Aritmetikai Kivételt kapunk nullával / nullával, és a kimenetbe nyomtatjuk a "guruException" változóval

3. Importálás

  • Importálhatunk egy másik fájl tartalmát egy JSP oldalra, mint ahogy azt a JSP include action-ben tettük.
  • Itt URL-t is felvehetünk, és a tartalom megjelenik az adott oldalon.

Szintaxis:

Itt a var egy változó neve, amely azonosító, amely megtartja a fájl / uri nevet.

Az uri relatív fájlnév vagy 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"%> JSP 31 törzscímke 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Ide illessze be a címet  A fájl importálása után diplomázott 

A kód magyarázata:

Coretag_jsp31.jsp

3. kódsor : Ez a taglib előtag szükséges minden címkéhez, és a hozzáadott előtag „c”, ezért minden koretag címkéjeként használható

Kódsor 11-12: Itt importáljuk a coretag_jsp32.jsp fájlt ebbe a fájlba importcímke segítségével

13. kódsor: Itt kinyomtatjuk a coretag_jsp32.jsp fájlt out tag segítségével.

A fenti kód végrehajtásakor a következő kimenetet kapja.

Kimenet:

  • A Coretag_jsp32 a kimenetbe van nyomtatva, mivel ezt a fájlt a coretag_jsp31.jsp fájlba importálták.

4. mindegyikre

  • Arra használják, hogy az utasítások sorozatának elemét megismételjék.
  • Ugyanaz, mint a Java forloop.

Szintaxis:

  • Itt a var a változó nevét jelenti, amely a számláló nevét fogja tartalmazni
  • A Begin a számláló kezdési értékét jelenti
  • A vég a végértékét fogja képviselni

Példa:

<% @ 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"%> JSP4 törzscímke 

A kód magyarázata:

3. kódsor : Ez a taglib előtag szükséges minden címkéhez, és a hozzáadott előtag „c”, ezért minden koretag címkéjeként használható

Kódsor 11-13: Itt az "forEach" ciklust használjuk, ahol a változó neve "gurucount", amely 5-ként kezdődött és a vége 10-ként lett megadva. Kinyomtatjuk a gurucount változót, amelynek 5 és 10 közötti számai vannak.

Amikor végrehajtja a kódot, a következő kimenetet kapja

Kimenet:

  • A kimenet, amelyet kapunk, 5-től 10-ig kezdődik.

5. Ha

  • A körülmények tesztelésére használják.
  • Ha a címkét egy feltétel tesztelésére használják, hogy ez igaz-e vagy sem, akkor a kódblokk végrehajtásra kerül.

Szintaxis:

<% @ 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"%> JSP5 törzscímke 

A kód magyarázata:

3. kódsor : Ez a taglib előtag szükséges minden címkéhez, és a hozzáadott előtag „c”, ezért minden koretag címkéjeként használható

11. kódsor: Itt a count névre keresztelt változót állítjuk be 100-ra

Kódsor 12-14: Itt "if feltétel" -t használunk, ahol ellenőrizzük, hogy a számlálás egyenlő-e 100-val. Ez egyenlő 100-mal, akkor a kimenetet "A szám 100" -nak kapjuk.

A fenti kód végrehajtásakor a következő kimenetet kapja

Kimenet:

  • Mivel az "ha" feltétel igaz, a kimenetet "A szám 100" -ként kapjuk meg.

6. átirányítás:

  • Az aktuális oldal másik URL-re történő átirányítására szolgál a címke relatív URL-jének megadásával.
  • Támogatja a kontextushoz viszonyított URL-eket

Szintaxis:

Itt az URL egy relatív URL, amelyre át kell irányítani, és a helyi webalkalmazás kontextus neve.

Példa:

<% @ 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"%> JSP6 törzscímke 

A kód magyarázata:

3. kódsor : Ez a taglib előtag szükséges minden címkéhez, és a hozzáadott előtag „c”, ezért minden koretag címkéjeként használható

11. kódsor : Itt az "átirányítási címkét" használjuk, ahol megadjuk az urlnevet, és amikor rákattintunk arra az oldalra, az átirányításra megadott webhelyre irányít át.

A fenti kód végrehajtásakor a következő kimenetet kapja;

Kimenet:

  • Megkapjuk a guru99.com kimeneti URL-t, amelyet a coretag_jsp6.jsp irányít át

JSP egyéni címkék

  • Ez egy felhasználó által definiált JSP nyelvi elem.
  • Amikor a JSP-t szervletté fordítják, az egyéni címke osztályokká konvertálódik, amely műveletet hajt végre egy objektummal, és címkekezelőként hívja meg.
  • Azokat a műveleteket, amikor a szervlet végrehajtásra kerül, a webes tároló hívja meg.
  • A felhasználó által definiált egyedi címke létrehozásához létre kell hoznunk a címke kezelőt, amely kiterjeszti a SimpleTagSupport szolgáltatást, és felül kell írnunk a doTag () metódust.
  • TLD-t kell létrehoznunk, ahol feltérképeznünk kell az osztályfájlt a TLD-ben.

Az egyéni címkék előnyei a JSP-ben:

  • Hordozható - A címkekönyvtárban leírt műveleteknek minden JSP-tárolóban használhatónak kell lenniük.
  • Egyszerű - A kifinomult felhasználóknak meg kell tudniuk érteni és használni ezt a mechanizmust. A JSP funkcionalitásának szállítóinak könnyen meg kell találniuk, hogy a felhasználók számára cselekvésként elérhetővé tegyék.
  • Kifejező - A mechanizmusnak a műveletek széles skáláját kell támogatnia, beleértve a beágyazott műveleteket, a parancsfájl-elemeket az akciótestekben, a szkript-változók létrehozását, használatát és frissítését.
  • Különböző szkriptnyelvekből használható - Bár a JSP specifikáció jelenleg csak a Java programozási nyelvű szkriptek szemantikáját határozza meg, nyitva akarjuk hagyni más szkriptnyelvek lehetőségét.
  • Meglévő koncepciókra és gépekre építve - Nem akarjuk máshol feltalálni a whatexistákat. Ezenkívül szeretnénk elkerülni a jövőbeni konfliktusokat, amikor csak megjósolhatjuk őket

Szintaxis:

Fontolja meg, hogy létrehozunk egy testGuru taget, és használhatjuk a handlertestTag osztályt, amely felülírja a doTag () metódust.

Class testTag extends SimpleTagSupport{ public void doTag()}

Ezenkívül le kell térképeznünk ezt a testTag osztályt a TLD-ben (Tag Library Descriptor), mivel a JSP tároló automatikusan létrehoz egy leképezést az osztályfájl és a TLD fájlban említett uri között.

JSP Tag Interface

  • Ennek az osztálynak ki kell terjesztenie a SimpleTagSupport osztályt.
  • Ennek az osztálynak felül kell írnia a doTag () metódust, amely a SimpleTagSupport osztály része (az felülbírálás egy olyan módszer, amelyet a szülő osztálytól örököltek).
  • Ez az interfész a JSPTag interfész al interfésze.
  • Megadja a címke elején és végén végrehajtandó módszereket.
  • Ezt az osztályt a TLD-ben kell feltérképeznünk, azaz a Tag Library leíróban

Az alábbi példában figyelembe vesszük

A címkefelület módszere

  • A doTag () egy olyan módszer, amelyet felül kell írnunk, és amely tartalmazza a címke tartalmát.
  • A getJSPContext () használatával a jelenlegi JSP kontextusra van szükség

Példa:

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"%> Egyéni címke 

Custom.tld

 1.0  2.0  TLD tesztelése  guruTag  demotest.guruTag  üres 

guruTag.java (TagHandler)

csomag demotest;importálja a javax.servlet.jsp.tagext. *;importálja a javax.servlet.jsp. *;import java.io. *;a nyilvános osztály guruTag kiterjeszti a SimpleTagSupport {public void doTag () dobja JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("Guru Tag");}}

A kód magyarázata:

guruTag.java (TagHandler)

Kódsor 6: A guruTag osztály kibővíti a SimpleTagSupport osztályt, amely a javax.servlet.JSP jar-ban található

7. kódsor : Itt felülbíráljuk a doTag () metódust, amely a JspException és az IOException elemeket dobja meg.

Kódsor 9-10: Ebben a módszerben a kód be lesz ágyazva az egyedi címkébe, amelyet meghívunk. Egy JspWriter objektumot veszünk, amely kinyomtatja a "Guru Tag" -t.

Custom.tld

6. kódsor : Itt az egyéni címke neve "guruTag".

Kódsor 7: A tag osztály taghandlerclass, azaz guruTag.java. A kezelő fájl teljes elérési útját lefedi, amely tartalmazza a fájl helyének könyvtár elérési útját.

Customtag_jsp1.jsp

3. kódsor: Ez a taglib előtag szükséges minden címkéhez, és a hozzáadott előtag 'ex', ezért minden koretaghoz előtagként használható, az uri pedig a custom.tld, amely feltérképezi a címke kezelőjét.

11. kódsor : Itt definiáljuk a "guruTag" egyéni címkét, amely meghívja a handler class doTag () metódust, és a benne lévő kód végrehajtásra kerül.

A fenti kód végrehajtásakor a következő kimenetet kapja

Kimenet:

  • A kimenetet "guruTag" néven kapjuk meg a guruTag.java-tól, azaz a TagHandler-től, amely felülírja a doTag () metódust, és amely a "Guru Tag" -t nyomtatja ki kimenetként.

Összegzés:

  • Ebben a szakaszban megismerhettük a JSP szabványos tagkönyvtárát, amelyben alapvető címkéket és egyéni címkéket készítettünk.
  • Az alapcímkék magukban foglalják az if, redirect, import, catch címkéket, amelyek a JSP-ben alapvető célokra használt címkék voltak.
  • Ezenkívül készítettünk egyedi címkéket, amelyekben meghatározhatjuk a címkéket és felhasználhatjuk a JSP-ben