Výukový program JSTL (knižnica štandardných značiek JSP): Core & Príklady vlastných značiek

Obsah:

Anonim

JSTL je štandardná knižnica značiek JSP. Tu uvidíme, ako použitie rôznych značiek JSTL uľahčí kódovanie JSP.

V tomto návode sa naučíte

  • Čo je JSTL
  • JSTL jadro
  • Vlastné značky JSP

Čo je JSTL?

JSTL je skratka pre štandardnú knižnicu značiek serverov Java a je to kolekcia vlastných knižníc značiek JSP, ktoré poskytujú bežné funkcie vývoja webových aplikácií.

Výhody JSTL

  1. Štandardná značka : Poskytuje bohatú vrstvu prenosných funkcií stránok JSP. Vývojár ľahko porozumie kódu.
  2. Kód čistý a čistý : Pretože scriplety pletú vývojára, použitie JSTL robí kód čistý a čistý.
  3. Automatická podpora JavabeansInterospection: Má výhodu JSTL oproti skriptom JSP. Jazyk JSTL Expression narába s kódom JavaBean veľmi ľahko. Nepotrebujeme zoslabovať objekty, ktoré boli získané ako atribúty s rozsahom. Používanie skriptov JSP bude komplikované a program JSTL tento účel zjednodušil.
  4. Ľahšie pre ľudí na čítanie : JSTL je založený na XML, ktorý je veľmi podobný HTML. Preto je vývojárom ľahké porozumieť.
  5. Ľahšie pochopiteľné pre počítače : Nástroje ako Dreamweaver a titulná stránka generujú čoraz viac kódu HTML. Nástroje HTML vynikajúco formátujú HTML kód. HTML kód je zmiešaný s kódom scriplet. Pretože JSTL je vyjadrený ako značka kompatibilná s XML, je pre generovanie HTML ľahké analyzovať kód JSTL v dokumente.

JSTL jadro

Základné značky sú najčastejšie používané značky v JSP. Poskytujú podporu pre

  • Iterácia
  • Podmienená logika
  • Chytiť výnimku
  • url vpred
  • Presmerovanie atď.

Aby sme mohli používať základné značky, musíme najskôr definovať knižnicu značiek a nižšie je uvedená syntax, ktorá obsahuje knižnicu značiek.

Syntax:

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

Tu,

  • prefix sa dá použiť na definovanie všetkých základných značiek a
  • uri je knižnica taglib, z ktorej sa importuje

Pozrime sa podrobne na niektoré z hlavných značiek,

1. Von:

  • Výsledok výrazu sa zobrazí vo výstupnej značke
  • Môže priamo uniknúť značkám XML. Preto sa nevyhodnocujú ako skutočné značky

Syntax:

  • Hodnota tu predstavuje informácie k výstupu a je povinná
  • Predvolená hodnota je zlyhanie pri vydávaní informácií a nie je to povinné
  • escapeXML - Je to pravda, ak unikne znakom XML.

Príklad:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Základná značka JSP1 

Vysvetlenie kódu:

Riadok kódu 3: Táto predpona taglib je povinná pre všetky značky a pridaná predpona je „c“. Preto ho možno použiť ako predponu pre všetky korzety.

Riadok kódu 12: Tu používame coretag out s predponou „c“ a týmto vytlačíme hodnotu v tagu výrazu. Preto bude výstupom meno

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

Výkon:

  • Hodnotu dostávame ako názov z hlavnej značky „out“, ktorá sa vytlačí vo výstupnom prúde.

2. Chytiť

  • Zachytáva každú hádzateľnú výnimku, ktorá sa vyskytne v tele, a zobrazuje sa ako výstup.
  • Slúži na spracovanie chýb a ich zachytenie.

Syntax:

Tu var predstavuje názov premennej, ktorá bude obsahovať vrhateľnú výnimku.

Príklad:

<% @ 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"%> Základná značka JSP2 <% int num = 10/0; %>Výnimkou je: $ {guruException}

Vysvetlenie kódu:

Riadok kódu 3: Táto predpona taglib je povinná pre všetky značky a pridaná predpona je 'c', preto ju možno použiť ako predponu pre všetky korigované značky.

Riadok kódu 11-13: Úlovok Coretag sa používa na zachytenie výnimky a jej vytlačenie. Tu sa výnimka vyvolá, keď 10/0 a táto výnimka má názov „guruException“.

Riadok kódu 14: Tlačíme „guruException“.

Po spustení kódu získate nasledujúci výstup:

Výkon:

  • Aritmetickú výnimku dostávame ako / od nuly a na výstup sa tlačí pomocou premennej „guruException“

3. Import

  • Môžeme importovať ďalší obsah súboru na stránku JSP, ako sme to urobili v akcii JSP include.
  • Sem môžeme zahrnúť aj URL a obsah sa zobrazí na tejto stránke.

Syntax:

Tu var je názov premennej, ktorý je identifikátorom a bude obsahovať názov súboru / uri.

uri je relatívny názov súboru alebo 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"%> Hlavná značka JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Sem vložte názov  Súbor je po importovaní zobrazený 

Vysvetlenie kódu:

Coretag_jsp31.jsp

Riadok kódu 3: Táto predpona taglib je povinná pre všetky značky a pridaná predpona je 'c', preto ju možno použiť ako predponu pre všetky korigované značky.

Riadok kódu 11-12: Tu importujeme súbor coretag_jsp32.jsp do tohto súboru pomocou značky importu

Kód Line13: Tu tlačíme súbor coretag_jsp32.jsp pomocou značky out.

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup.

Výkon:

  • Coretag_jsp32 je na výstupe vytlačený, pretože tento súbor bol importovaný do súboru coretag_jsp31.jsp.

4. preKaždý

  • Používa sa na iteráciu počtu prvkov v sérii príkazov.
  • Je to rovnaké ako Java forloop.

Syntax:

  • Tu var predstavuje názov premennej, ktorá bude obsahovať názov počítadla
  • Begin predstavuje začiatočnú hodnotu počítadla
  • Koniec bude predstavovať jeho konečnú hodnotu

Príklad:

<% @ 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"%> Základná značka JSP4 

Vysvetlenie kódu:

Riadok kódu 3: Táto predpona taglib je povinná pre všetky značky a pridaná predpona je 'c', preto ju možno použiť ako predponu pre všetky korigované značky.

Riadok kódu 11-13: Tu používame slučku „forEach“, kde názov premennej je „gurucount“, ktorá začala počítať ako 5 a končí počítať ako 10. Tlačíme premennú gurucount, ktorá má čísla začínajúce od 5 do 10.

Po vykonaní kódu získate nasledujúci výstup

Výkon:

  • Výstup, ktorý dostávame, sa začína od 5 do 10.

5. Ak

  • Používa sa na testovacie podmienky.
  • Ak sa značka použije na otestovanie podmienky, či je na základe toho pravdivá alebo nie, vykoná sa blok kódu.

Syntax:

<% @ 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"%> Základná značka JSP5 

Vysvetlenie kódu:

Riadok kódu 3: Táto predpona taglib je povinná pre všetky značky a pridaná predpona je 'c', preto ju možno použiť ako predponu pre všetky korigované značky.

Riadok kódu 11: Tu nastavujeme premennú pomenovanú ako count na 100

Riadok kódu 12-14: Tu používame podmienku „if“, kde kontrolujeme, či je počet rovný 100. Rovná sa 100, potom dostaneme výstup ako „Počet je 100.“

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup

Výkon:

  • Pretože je podmienka „if“ pravdivá, dostaneme výstup ako „Počet je 100“.

6. presmerovanie:

  • Používa sa na presmerovanie aktuálnej stránky na inú adresu URL poskytnutím relatívnej adresy URL tejto značky.
  • Podporuje kontextové adresy URL

Syntax:

Tu je url relatívna url, na ktorú musí byť presmerovaná, a kontextový názov lokálnej webovej aplikácie.

Príklad:

<% @ 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"%> Základná značka JSP6 

Vysvetlenie kódu:

Riadok kódu 3: Táto predpona taglib je povinná pre všetky značky a pridaná predpona je 'c', preto ju možno použiť ako predponu pre všetky korigované značky.

Riadok kódu 11: Tu používame „značku presmerovania“, kde určujeme názov adresy, a keď klikneme na túto stránku, presmeruje sa na web, ktorý bol daný na presmerovanie.

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup;

Výkon:

  • Získame výstupnú adresu URL guru99.com, ktorá je presmerovaná súborom coretag_jsp6.jsp

Vlastné značky JSP

  • Je to užívateľom definovaný jazykový prvok JSP.
  • Keď sa JSP preloží do servletu, vlastná značka sa prevedie na triedu, ktorá koná s objektom a nazýva sa ako manipulátor značiek.
  • Tieto akcie, keď sa vykoná servlet, sú vyvolané webovým kontajnerom.
  • Ak chcete vytvoriť používateľom definovanú vlastnú značku, musíme vytvoriť obslužnú rutinu značky, ktorá rozšíri SimpleTagSupport a bude musieť prepísať metódu doTag ().
  • Potrebujeme vytvoriť TLD tam, kde potrebujeme namapovať súbor triedy v TLD.

Výhody vlastných značiek v JSP:

  • Prenosné - Akcia opísaná v knižnici značiek musí byť použiteľná v ľubovoľnom kontajneri JSP.
  • Jednoduché - nenároční používatelia musia byť schopní porozumieť a používať tento mechanizmus. Predajcovia funkcií JSP musia mať možnosť ľahko ich sprístupniť používateľom ako akcie.
  • Expresívne - Mechanizmus musí podporovať širokú škálu akcií vrátane vnorených akcií, skriptovacích prvkov v orgánoch akcií, vytvárania, používania a aktualizácie skriptovacích premenných.
  • Použiteľné z rôznych skriptovacích jazykov - Aj keď špecifikácia JSP v súčasnosti definuje iba sémantiku skriptov v programovacom jazyku Java, chceme nechať otvorenú možnosť ďalších skriptovacích jazykov.
  • Postavené na existujúcich koncepciách a strojových zariadeniach - nechceme objavovať whatexisty inde. Tiež sa chceme vyhnúť budúcim konfliktom, kedykoľvek ich dokážeme predvídať

Syntax:

Zvážte, že vytvárame značku testGuru a môžeme použiť triedu tagaghandlertestTag, ktorá prepíše metódu doTag ().

Class testTag extends SimpleTagSupport{ public void doTag()}

Tiež budeme musieť namapovať túto triedu testTag v TLD (Tag Library Descriptor), pretože kontajner JSP automaticky vytvorí mapovanie medzi súborom triedy a uri, ktoré bolo uvedené v súbore TLD.

Rozhranie značiek JSP

  • Táto trieda bude musieť rozšíriť triedu SimpleTagSupport.
  • Táto trieda bude musieť prepísať metódu doTag (), ktorá je súčasťou triedy SimpleTagSupport (prepísanie je metóda, ktorá sa dedí z nadradenej triedy).
  • Toto rozhranie je čiastkovým rozhraním rozhrania JSPTag.
  • Poskytuje metódy, ktoré sa majú vykonať na začiatku a na konci značky.
  • Túto triedu musíme tiež namapovať v TLD, tj v deskriptore knižnice značiek

Zvažujeme v príklade nižšie

Metóda rozhrania značiek

  • doTag () je metóda, ktorú musíme prepísať a ktorá bude mať obsah značky.
  • Trvá aktuálny kontext JSP pomocou getJSPContext ()

Príklad:

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"%> Vlastná značka 

Custom.tld

 1.0  2.0  Test TLD  guruTag  demotest.guruTag  prázdny 

guruTag.java (TagHandler)

balíček demotest;importovať javax.servlet.jsp.tagext. *;import javax.servlet.jsp. *;import java.io. *;public class guruTag rozširuje SimpleTagSupport {public void doTag () hodí JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("značka Guru");}}

Vysvetlenie kódu:

guruTag.java (TagHandler)

Riadok kódu 6: trieda guruTag rozširuje triedu SimpleTagSupport, ktorá sa nachádza v jar javax.servlet.JSP

Riadok kódu 7: Tu prekonávame metódu doTag (), ktorá vrhá JspException a IOException.

Riadok kódu 9-10: V tejto metóde bude kód vložený do vlastnej značky, ktorá sa bude volať. Berieme objekt JspWriter a ten vytlačí „Guru Tag“.

Custom.tld

Riadok kódu 6: Tu je názov vlastnej značky „guruTag“.

Riadok kódu 7: Trieda značky je taghandlerclass, tj. GuruTag.java. Zaberá celú cestu k súboru obslužnej rutiny, ktorá obsahuje cestu k adresáru umiestnenia súboru.

Customtag_jsp1.jsp

Riadok kódu 3 : Táto predpona taglib je vyžadovaná pre všetky značky a pridaná predpona je 'ex', preto ju možno použiť ako predponu pre všetky koretagy a uri je custom.tld, ktorý mapuje obslužný program značiek.

Riadok kódu 11: Tu definujeme vlastnú značku „guruTag“, ktorá zavolá metódu triedy handler doTag () a vykoná sa kód v nej.

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup

Výkon:

  • Výstup dostaneme ako „GuruTag“ z guruTag.java, tj TagHandler, ktorý prepíše metódu doTag () a ktorý vytlačí „Guru Tag“ ako výstup.

Zhrnutie:

  • V tejto časti sme sa dozvedeli o štandardnej knižnici značiek JSP, v ktorej sme robili základné značky a vlastné značky.
  • Medzi hlavné značky patria značky pre, ak, presmerovanie, import, chytenie, ktoré boli značkami používanými na základné účely v JSP.
  • Tiež sme vytvorili vlastné značky, v ktorých môžeme značky definovať a použiť v JSP