Vodič za JSTL (JSP standardna knjižnica oznaka): Core & Primjeri prilagođenih oznaka

Sadržaj:

Anonim

JSTL je standardna knjižnica oznaka JSP-a. Ovdje ćemo vidjeti kako će korištenje različitih JSTL oznaka olakšati JSP kodiranje.

U ovom vodiču naučit ćete-

  • Što je JSTL
  • JSTL jezgra
  • JSP prilagođene oznake

Što je JSTL?

JSTL je skraćenica za knjižnicu standardnih oznaka stranica Java poslužitelja, a to je zbirka prilagođenih JSP knjižnica oznaka koje pružaju uobičajene funkcionalnosti web razvoja.

Prednosti JSTL-a

  1. Standardna oznaka : Pruža bogat sloj prijenosne funkcionalnosti JSP stranica. Programeru je lako razumjeti kod.
  2. Čist i čist kôd : Kako skripte zbunjuju programera, upotreba JSTL-a čini kôd urednim i čistim.
  3. Automatska podrška za JavabeansInterospection : Ima prednost JSTL-a u odnosu na JSP skripte. JSTL Expression jezik vrlo lako rukuje JavaBean kodom. Ne trebamo spuštati objekte, što je dohvaćeno kao atributi opsega. Korištenje JSP koda skripti bit će komplicirano, a JSTL je pojednostavio tu svrhu.
  4. Jednostavnije za čitanje ljudima : JSTL se temelji na XML-u, koji je vrlo sličan HTML-u. Stoga je programerima lako razumjeti.
  5. Lakše za razumijevanje računala : Alati poput Dreamweavera i naslovne stranice generiraju sve više i više HTML koda. HTML alati izvrsno rade oblikovanje HTML koda. HTML kôd se miješa sa kodom skripte. Kako se JSTL izražava kao oznake kompatibilne s XML-om, generaciji HTML-a lako je raščlaniti JSTL kôd unutar dokumenta.

JSTL jezgra

Temeljne oznake najčešće su korištene oznake u JSP-u. Pružaju podršku za

  • Iteracija
  • Uvjetna logika
  • Iznimka ulova
  • url naprijed
  • Preusmjeravanje itd.

Da bismo koristili osnovne oznake, prvo moramo definirati knjižnicu oznaka, a ispod je sintaksa koja uključuje knjižnicu oznaka.

Sintaksa:

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

Ovdje,

  • prefiks se može koristiti za definiranje svih temeljnih oznaka i
  • uri je knjižnica tagliba iz koje se uvozi

Pogledajmo neke temeljne oznake detaljno,

1. Izlaz:

  • Rezultat izraza prikazuje se u oznaci out
  • Može izravno pobjeći od XML oznaka. Stoga se oni ne ocjenjuju kao stvarne oznake

Sintaksa:

  • Ovdje vrijednost predstavlja informacije na izlazu i ona je obavezna
  • Zadana je neuspjeh u izlazu podataka i nije obavezna
  • escapeXML - Istina je ako pobjegne XML znakovima.

Primjer:

Coretag_jsp1.jsp

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

Objašnjenje koda:

Redak koda 3: Ovaj taglib prefiks potreban je za sve oznake, a dodani prefiks je 'c'. Stoga se može koristiti kao prefiks za sve ključne oznake.

Redak koda 12: Ovdje koristimo coretag out s prefiksom "c" i ovaj će izlaz ispisati vrijednost u oznaci izraza. Stoga će izlaz biti naziv

Kada izvršite gornji kod, dobit ćete sljedeći izlaz:

Izlaz:

  • Vrijednost dobivamo kao ime iz jezgrene oznake "out" koja će se ispisati u izlaznom toku.

2. Ulov

  • Uhvaća svaku izuzeću za bacanje koja se dogodi u tijelu i prikaže kao izlaz.
  • Koristi se za rješavanje pogrešaka i njihovo hvatanje.

Sintaksa:

Ovdje var predstavlja ime varijable, koja će sadržavati izuzetak koji se može baciti.

Primjer:

<% @ 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"%> Osnovna oznaka JSP2 <% int num = 10/0; %>Iznimka je: $ {guruException}

Objašnjenje koda:

Redak koda 3: Ovaj taglib prefiks potreban je za sve oznake, a dodani prefiks je 'c', stoga se može koristiti kao prefiks za sve ključne oznake

Redak 11-13: Coretag catch koristi se za hvatanje iznimke i ispis iznimke. Ovdje se iznimka postavlja kada je 10/0 i ta iznimka ima naziv "guruException".

Redak 14: Ispisujemo "guruException".

Kada izvršite kôd, dobit ćete sljedeći izlaz:

Izlaz:

  • Dobijamo aritmetičku iznimku kao / prema nuli, a ona se ispisuje u izlazu pomoću varijable "guruException"

3. Uvoz

  • Možemo uvesti još jedan sadržaj datoteke na JSP stranicu kao što smo to učinili u JSP include action.
  • Ovdje također možemo uključiti URL i sadržaj će biti prikazan na toj stranici.

Sintaksa:

Ovdje je var ime varijable koje je identifikator, a koji će sadržavati ime datoteke / uri.

uri je relativno ime datoteke ili 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"%> Oznaka jezgre JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Ovdje umetnite naslov  Datoteka se prikazuje nakon uvoza 

Objašnjenje koda:

Coretag_jsp31.jsp

Redak koda 3: Ovaj taglib prefiks potreban je za sve oznake, a dodani prefiks je 'c', stoga se može koristiti kao prefiks za sve ključne oznake

Linija koda 11-12: Ovdje uvozimo datoteku coretag_jsp32.jsp u ovu datoteku pomoću oznake za uvoz

Linija koda13: Ovdje ispisujemo datoteku coretag_jsp32.jsp pomoću oznake out.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz.

Izlaz:

  • Coretag_jsp32 ispisuje se u izlazu jer je ova datoteka uvezena u coretag_jsp31.jsp.

4. zaSvakog

  • Koristi se za ponavljanje broja elemenata u nizu izjava.
  • To je isto kao Java forloop.

Sintaksa:

  • Ovdje var predstavlja ime varijable koje će sadržavati ime brojača
  • Begin predstavlja vrijednost brojača
  • Kraj će predstavljati njegovu krajnju vrijednost

Primjer:

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

Objašnjenje koda:

Redak koda 3: Ovaj taglib prefiks potreban je za sve oznake, a dodani prefiks je 'c', stoga se može koristiti kao prefiks za sve ključne oznake

Redak koda 11-13: Ovdje koristimo petlju "forEach" gdje je naziv varijable "gurucount", koji je počeo računati kao 5, a završavati kao 10. Ispisujemo varijablu gurucount koja ima brojeve koji počinju od 5 do 10.

Kada izvršite kôd, dobit ćete sljedeći izlaz

Izlaz:

  • Izlaz koji dobivamo počinje od 5 do 10.

5. Ako

  • Koristi se za uvjete ispitivanja.
  • Ako se oznaka koristi za testiranje stanja je li na temelju toga istinito ili ne, izvršit će se blok koda.

Sintaksa:

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

Objašnjenje koda:

Redak koda 3: Ovaj taglib prefiks potreban je za sve oznake, a dodani prefiks je 'c', stoga se može koristiti kao prefiks za sve ključne oznake

Linija koda 11: Ovdje postavljamo varijablu imenovanu kao count na 100

Redak koda 12-14: Ovdje koristimo "if condition" gdje provjeravamo je li brojanje jednako 100. Jednako je 100, a izlaz dobivamo kao "Brojanje je 100".

Kada izvršite gornji kod, dobit ćete sljedeći izlaz

Izlaz:

  • Kako je uvjet "ako" istinit, dobivamo izlaz kao "Brojanje je 100".

6. preusmjeravanje:

  • Koristi se za preusmjeravanje trenutne stranice na drugi URL davanjem relativnog URL-a ove oznake.
  • Podržava URL-ove koji se odnose na kontekst

Sintaksa:

Ovdje je url relativni url na koji ga treba preusmjeriti i naziv konteksta lokalne web aplikacije.

Primjer:

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

Objašnjenje koda:

Redak koda 3: Ovaj taglib prefiks potreban je za sve oznake, a dodani prefiks je 'c', stoga se može koristiti kao prefiks za sve ključne oznake

Linija koda 11: Ovdje koristimo "oznaku za preusmjeravanje", gdje navodimo naziv url-a, a kada kliknemo na tu stranicu, preusmjerava se na web mjesto koje je dato za preusmjeravanje.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz;

Izlaz:

  • Dobivamo izlazni url guru99.com koji preusmjerava coretag_jsp6.jsp

JSP prilagođene oznake

  • To je korisnički definirani element JSP jezika.
  • Kada se JSP prevede u servlet, prilagođena oznaka pretvara se u klasu koja poduzima radnje na objektu i poziva se kao rukovatelj oznakama.
  • Te akcije kada se izvrši servlet poziva web-spremnik.
  • Da bismo stvorili korisnički definiranu prilagođenu oznaku, moramo stvoriti rukovatelj oznakama koji će proširiti SimpleTagSupport i morati nadjačati metodu doTag ().
  • Moramo stvoriti TLD tamo gdje moramo mapirati datoteku klase u TLD.

Prednosti prilagođenih oznaka u JSP-u:

  • Prijenosno - radnja opisana u knjižnici oznaka mora biti upotrebljiva u bilo kojem JSP spremniku.
  • Jednostavno - nesofisticirani korisnici moraju biti u stanju razumjeti i koristiti ovaj mehanizam. Dobavljačima JSP funkcionalnosti mora biti lako učiniti ih dostupnima za radnike kao akcije.
  • Izražajno - Mehanizam mora podržavati širok raspon radnji, uključujući ugrađene radnje, elemente skriptiranja unutar tijela radnje, stvaranje, upotrebu i ažuriranje varijabli skriptiranja.
  • Upotrebljivo iz različitih skriptnih jezika - Iako JSP specifikacija trenutno definira samo semantiku skripti u programskom jeziku Java, želimo ostaviti otvorenu mogućnost ostalih skriptnih jezika.
  • Nadograđeni na postojećim konceptima i mašinama - ne želimo iznova pronalaziti ono što postoji drugdje. Također, želimo izbjeći buduće sukobe kad god ih možemo predvidjeti

Sintaksa:

Uzmimo u obzir da stvaramo testGuru oznaku i možemo koristiti klasutaghandlertestTag, koja će nadjačati doTag () metodu.

Class testTag extends SimpleTagSupport{ public void doTag()}

Također, morat ćemo preslikati ovu testTag klasu u TLD (Deskriptor biblioteke oznaka) jer će JSP spremnik automatski stvoriti mapiranje između datoteke klase i uri-a koje je spomenuto u TLD datoteci.

JSP sučelje oznake

  • Ova klasa morat će proširiti klasu SimpleTagSupport.
  • Ova klasa morat će nadjačati doTag () metodu koja je dio klase SimpleTagSupport (nadjačavanje je metoda koja se nasljeđuje od roditeljske klase).
  • Ovo sučelje je pomoćno sučelje JSPTag sučelja.
  • Pruža metode za izvođenje na početku i na kraju oznake.
  • Također, trebamo mapirati ovu klasu u TLD, tj. Deskriptor Biblioteke oznaka

Razmatramo u donjem primjeru

Način sučelja oznake

  • doTag () je metoda koju trebamo nadjačati koja će sadržavati oznaku.
  • Potreban je trenutni JSP kontekst pomoću getJSPContext ()

Primjer:

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"%> Prilagođena oznaka 

Prilagođeno.tld

 1.0  2.0  Testiraj TLD  guruTag  demotest.guruTag  prazno 

guruTag.java (TagHandler)

demotest paketa;uvoz javax.servlet.jsp.tagext. *;uvoz javax.servlet.jsp. *;import java.io. *;guruTag javne klase proširuje SimpleTagSupport {public void doTag () baca JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("Guru oznaka");}}

Objašnjenje koda:

guruTag.java (TagHandler)

Redak 6: klasa guruTag proširuje klasu SimpleTagSupport koja je prisutna u javax.servlet.JSP jar

Kodni redak 7: Ovdje prevladavamo doTag () metodu koja baca JspException i IOException.

Linija koda 9-10: U ovoj metodi kôd će biti ugrađen u prilagođenu oznaku koja će biti pozvana. Uzimamo objekt JspWriter-a i na njemu će se ispisati "Guru Tag".

Prilagođeno.tld

6. red retka: Ovdje je naziv prilagođene oznake "guruTag".

Kodni redak 7: Klasa oznake je taghandlerclass, tj. GuruTag.java. Potrebna je puna staza datoteke obrađivača koja uključuje stazu direktorija do lokacije datoteke.

Customtag_jsp1.jsp

Linija 3 : Ovaj taglib prefiks potreban je za sve oznake, a dodani prefiks je 'ex', stoga se može koristiti kao prefiks za sve coretagove, a uri je custom.tld koji preslikava rukovatelj oznakama.

Linija koda 11: Ovdje definiramo prilagođenu oznaku "guruTag", koja će pozvati metodu klase handler doTag () i kôd unutar nje će se izvršiti.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz

Izlaz:

  • Izlaz dobivamo kao "GuruTag" od guruTag.java tj. TagHandler, koji poništava doTag () metodu i koji ispisuje "Guru Tag" kao izlaz.

Sažetak:

  • U ovom smo odjeljku saznali o JSP knjižnici standardnih oznaka u kojoj smo radili osnovne oznake i prilagođene oznake.
  • Ključne oznake uključuju oznake if, if, redirect, import, catch koje su oznake korištene u osnovne svrhe u JSP-u.
  • Također, napravili smo prilagođene oznake u kojima možemo definirati oznake i koristiti ih u JSP-u