Výukový program JSTL (JSP Standard Tag Library): Core & Příklady vlastních značek

Obsah:

Anonim

JSTL je standardní knihovna značek JSP. Zde uvidíme, jak použití různých značek JSTL usnadní kódování JSP.

V tomto výukovém programu se naučíte

  • Co je JSTL
  • JSTL jádro
  • Vlastní značky JSP

Co je JSTL?

JSTL je zkratka pro standardní knihovnu značek stránek serveru Java a je to kolekce vlastních knihoven značek JSP, které poskytují běžné funkce pro vývoj webu.

Výhody JSTL

  1. Standardní značka : Poskytuje bohatou vrstvu přenosných funkcí stránek JSP. Pro vývojáře je snadné kódu porozumět.
  2. Code Neat and Clean : Jelikož scriplety pletou vývojáře, díky použití JSTL je kód čistý a čistý.
  3. Automatická podpora JavabeansInterospection : Má výhodu JSTL oproti skriptům JSP. Jazyk JSTL Expression velmi snadno zpracovává kód JavaBean. Nepotřebujeme downcastovat objekty, které byly načteny jako atributy s rozsahem. Používání skriptů JSP bude komplikované a JSTL tento účel zjednodušila.
  4. Snadnější čtení pro lidi : JSTL je založen na XML, který je velmi podobný HTML. Proto je pro vývojáře snadné pochopit.
  5. Snadnější pochopení pro počítače : Nástroje jako Dreamweaver a přední stránka generují stále více a více kódu HTML. Nástroje HTML dělají skvělou práci při formátování kódu HTML. HTML kód je smíchán s kódem scriplet. Protože JSTL je vyjádřen jako tagy kompatibilní s XML, je pro generování HTML snadné analyzovat kód JSTL v dokumentu.

JSTL jádro

Základní značky jsou nejčastěji používané značky v JSP. Poskytují podporu pro

  • Opakování
  • Podmíněná logika
  • Chyťte výjimku
  • URL vpřed
  • Přesměrování atd.

Chcete-li použít základní značky, musíme nejprve definovat knihovnu značek a níže je syntaxe, která zahrnuje knihovnu značek.

Syntaxe:

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

Tady,

  • předponu lze použít k definování všech klíčových značek a
  • uri je knihovna taglib, ze které je importována

Podívejme se podrobně na některé základní značky,

1. ven:

  • Výsledek výrazu se zobrazí v out tagu
  • Může přímo uniknout značkám XML. Proto nejsou hodnoceny jako skutečné značky

Syntax:

  • Zde hodnota představuje informace k výstupu a je povinná
  • Výchozí je selhání výstupu informací a není to povinné
  • escapeXML - Je to pravda, pokud unikne znakům XML.

Příklad:

Coretag_jsp1.jsp

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

Vysvětlení kódu:

Řádek kódu 3: Tato předpona taglib je vyžadována pro všechny značky a přidaná předpona je „c“. Lze jej tedy použít jako předponu pro všechny coretagy.

Řádek kódu 12: Zde používáme coretag out s předponou „c“ a tento out vytiskne hodnotu ve značce výrazu. Proto bude výstup název

Když spustíte výše uvedený kód, získáte následující výstup:

Výstup:

  • Hodnotu získáváme jako název z hlavní značky „out“, která se vytiskne ve výstupním proudu.

2. Chyťte

  • Zachytí jakoukoli výjimku, která se dá v těle vyskytnout, a zobrazí se jako výstup.
  • Používá se pro zpracování chyb a pro jejich zachycení.

Syntax:

Zde var představuje název proměnné, která bude obsahovat vyjímatelnou výjimku.

Pří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ýjimkou je: $ {guruException}

Vysvětlení kódu:

Řádek kódu 3: Tato předpona taglib je vyžadována pro všechny značky a přidaná předpona je „c“, a proto ji lze použít jako předponu pro všechny coretagy

Řádek kódu 11-13: Úlovek Coretag se používá k zachycení výjimky a tisku výjimky. Zde je výjimka vyvolána, když 10/0 a tato výjimka má název „guruException“.

Řádek kódu 14: Tiskneme „guruException“.

Po spuštění kódu získáte následující výstup:

Výstup:

  • Aritmetickou výjimku dostáváme jako / od nuly a na výstupu se tiskne pomocí proměnné „guruException“

3. Import

  • Můžeme importovat další obsah souboru na stránku JSP, jako jsme to udělali v JSP include action.
  • Zde můžeme také zahrnout URL a obsah se zobrazí na této stránce.

Syntax:

Zde var je název proměnné, což je identifikátor, který bude obsahovat název souboru / uri.

uri je relativní název souboru nebo 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"%> Základní 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ázev  Soubor je po importu zobrazen 

Vysvětlení kódu:

Coretag_jsp31.jsp

Řádek kódu 3: Tato předpona taglib je vyžadována pro všechny značky a přidaná předpona je „c“, a proto ji lze použít jako předponu pro všechny coretagy

Řádek kódu 11-12: Zde importujeme soubor coretag_jsp32.jsp do tohoto souboru pomocí značky importu

Kód Line13: Zde tiskneme soubor coretag_jsp32.jsp pomocí out tagu.

Když spustíte výše uvedený kód, získáte následující výstup.

Výstup:

  • Coretag_jsp32 se vytiskne na výstupu, protože tento soubor byl importován do souboru coretag_jsp31.jsp.

4. forEach

  • Používá se k iteraci počtu prvků v řadě příkazů.
  • Je to stejné jako Java forloop.

Syntax:

  • Zde var představuje název proměnné, která bude obsahovat název čítače
  • Begin představuje počáteční hodnotu čítače
  • Konec bude představovat jeho konečnou hodnotu

Pří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 

Vysvětlení kódu:

Řádek kódu 3: Tato předpona taglib je vyžadována pro všechny značky a přidaná předpona je „c“, a proto ji lze použít jako předponu pro všechny coretagy

Řádek kódu 11-13: Zde používáme smyčku „forEach“, kde název proměnné je „gurucount“, který začal počítat jako 5 a končí jako 10. Tiskneme proměnnou gurucount, která má čísla začínající od 5 do 10.

Když spustíte kód, získáte následující výstup

Výstup:

  • Výstup, který dostáváme, začíná od 5 do 10.

5. Pokud

  • Používá se pro testovací podmínky.
  • Pokud se značka použije k testování podmínky, zda je na základě toho pravdivá nebo ne, blok kódu by byl spuštěn.

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 

Vysvětlení kódu:

Řádek kódu 3: Tato předpona taglib je vyžadována pro všechny značky a přidaná předpona je „c“, a proto ji lze použít jako předponu pro všechny coretagy

Řádek kódu 11: Zde nastavujeme proměnnou pojmenovanou jako count na 100

Řádek kódu 12-14: Zde používáme podmínku „if“, kde kontrolujeme, zda je počet roven 100. Rovná se 100, pak dostaneme výstup jako „Počet je 100.“

Když spustíte výše uvedený kód, získáte následující výstup

Výstup:

  • Protože je podmínka „if“ pravdivá, dostaneme výstup jako „Počet je 100“.

6. přesměrování:

  • Používá se k přesměrování aktuální stránky na jinou adresu URL poskytnutím relativní adresy URL této značky.
  • Podporuje kontextové adresy URL

Syntax:

Zde je url relativní url, na kterou má být přesměrováno, a kontextový název místní webové aplikace.

Pří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 

Vysvětlení kódu:

Řádek kódu 3: Tato předpona taglib je vyžadována pro všechny značky a přidaná předpona je „c“, a proto ji lze použít jako předponu pro všechny coretagy

Řádek kódu 11: Zde používáme „značku přesměrování“, kde specifikujeme název urln, a když klikneme na tuto stránku, přesměruje se na web, který byl uveden pro přesměrování.

Když spustíte výše uvedený kód, získáte následující výstup;

Výstup:

  • Dostaneme výstupní adresu guru99.com, která je přesměrována coretag_jsp6.jsp

Vlastní značky JSP

  • Jedná se o uživatelem definovaný jazykový prvek JSP.
  • Když je JSP přeložen do servletu, je vlastní značka převedena na třídu, která provede akci s objektem a je nazývána jako obslužná rutina značky.
  • Tyto akce při spuštění servletu jsou vyvolány webovým kontejnerem.
  • Chcete-li vytvořit uživatelsky definovanou vlastní značku, musíme vytvořit obslužnou rutinu značky, která rozšíří SimpleTagSupport a bude muset přepsat metodu doTag ().
  • Musíme vytvořit TLD tam, kde potřebujeme namapovat soubor třídy v TLD.

Výhody vlastních značek v JSP:

  • Přenosné - Akce popsaná v knihovně značek musí být použitelná v jakémkoli kontejneru JSP.
  • Jednoduché - nesofistikovaní uživatelé musí být schopni pochopit a používat tento mechanismus. Prodejci funkcionality JSP musí mít možnost snadno jej zpřístupnit uživatelům jako akce.
  • Expresivní - Mechanismus musí podporovat širokou škálu akcí, včetně vnořených akcí, skriptovacích prvků uvnitř těl akcí, vytváření, používání a aktualizace skriptovacích proměnných.
  • Použitelné z různých skriptovacích jazyků - Ačkoli specifikace JSP v současné době definuje pouze sémantiku skriptů v programovacím jazyce Java, chceme ponechat otevřenou možnost dalších skriptovacích jazyků.
  • Postaveno na stávajících koncepcích a strojích - Nechceme znovu objevovat whatexisty jinde. Také se chceme vyhnout budoucím konfliktům, kdykoli je dokážeme předvídat

Syntax:

Zvažte, že vytváříme značku testGuru a můžeme použít třídu, která přepíše metodu doTag ().

Class testTag extends SimpleTagSupport{ public void doTag()}

Také budeme muset mapovat tuto třídu testTag v TLD (Tag Library Descriptor), protože kontejner JSP automaticky vytvoří mapování mezi souborem třídy a uri, které bylo uvedeno v souboru TLD.

Rozhraní značky JSP

  • Tato třída bude muset rozšířit třídu SimpleTagSupport.
  • Tato třída bude muset přepsat metodu doTag (), která je součástí třídy SimpleTagSupport (přepsání je metoda zděděná z nadřazené třídy).
  • Toto rozhraní je dílčím rozhraním rozhraní JSPTag.
  • Poskytuje metody, které se mají provádět na začátku a na konci značky.
  • Tuto třídu musíme také namapovat v TLD, tj. V deskriptoru knihovny značek

Uvažujeme v níže uvedeném příkladu

Metoda rozhraní značek

  • doTag () je metoda, kterou musíme přepsat, která bude mít obsah značky.
  • Trvá aktuální kontext JSP pomocí getJSPContext ()

Pří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ázdný 

guruTag.java (TagHandler)

balíček demotest;importovat javax.servlet.jsp.tagext. *;import javax.servlet.jsp. *;importovat java.io. *;public class guruTag rozšiřuje SimpleTagSupport {public void doTag () vyvolá JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("Guru Tag");}}

Vysvětlení kódu:

guruTag.java (TagHandler)

Řádek kódu 6: Třída guruTag rozšiřuje třídu SimpleTagSupport, která je přítomna ve sklenici javax.servlet.JSP

Řádek kódu 7: Zde přepisujeme metodu doTag (), která vyvolá JspException a IOException.

Řádek kódu 9-10: V této metodě bude kód vložen do vlastní značky, která bude volána. Bereme objekt JspWriter a ten vytiskne „Guru Tag“.

Custom.tld

Řádek kódu 6: Zde je název vlastní značky „guruTag“.

Řádek kódu 7: Třída značky je taghandlerclass, tj. GuruTag.java. Trvá úplnou cestu k souboru obslužné rutiny, která zahrnuje cestu k adresáři umístění souboru.

Customtag_jsp1.jsp

Řádek kódu 3 : Tato předpona taglib je vyžadována pro všechny značky a přidaná předpona je „ex“, a proto ji lze použít jako předponu pro všechny coretagy a uri je custom.tld, který mapuje obslužnou rutinu značky.

Řádek kódu 11: Zde definujeme vlastní značku „guruTag“, která zavolá metodu třídy handler doTag () a provede se kód v ní.

Když spustíte výše uvedený kód, získáte následující výstup

Výstup:

  • Výstup dostaneme jako „GuruTag“ z guruTag.java, tj. TagHandler, který přepíše metodu doTag () a který vytiskne „Guru Tag“ jako výstup.

Souhrn:

  • V této části jsme se dozvěděli o standardní knihovně značek JSP, ve které jsme prováděli základní značky a vlastní značky.
  • Mezi hlavní značky patří značky if, redirect, import, catch, které byly značkami používanými pro základní účely v JSP.
  • Také jsme vytvořili vlastní značky, kde můžeme značky definovat a použít v JSP