JSTL (JSP Standard Tag Library) Handledning: Core & Exempel på anpassade taggar

JSTL är ett standard taggbibliotek för JSP. Här kommer vi att se hur användning av olika JSTL-taggar gör JSP-kodning enklare.

I den här handledningen lär du dig-

  • Vad är JSTL
  • JSTL Core
  • JSP anpassade taggar

Vad är JSTL?

JSTL står för Java-server-sidor standard taggbibliotek, och det är en samling anpassade JSP-taggbibliotek som ger vanliga webbutvecklingsfunktioner.

Fördelar med JSTL

  1. Standard Tag : Det ger ett rikt lager av den bärbara funktionen på JSP-sidor. Det är lätt för en utvecklare att förstå koden.
  2. Kod snyggt och rent : Eftersom skriplar förvirrar utvecklare gör användningen av JSTL koden snygg och ren.
  3. Automatisk JavabeansInterospection Support : Det har en fördel med JSTL jämfört med JSP-scriptlets. JSTL Expression-språk hanterar JavaBean-kod mycket enkelt. Vi behöver inte nedjustera objekten, som har hämtats som attribut för omfattning. Att använda JSP-skriptkoder kommer att vara komplicerat och JSTL har förenklat detta syfte.
  4. Enklare för människor att läsa : JSTL är baserat på XML, vilket är mycket likt HTML. Därför är det lätt för utvecklarna att förstå.
  5. Enklare för datorer att förstå : Verktyg som Dreamweaver och förstasidan genererar mer och mer HTML-kod. HTML-verktyg gör ett bra jobb med att formatera HTML-kod. HTML-koden blandas med scriplet-koden. Eftersom JSTL uttrycks som XML-kompatibla taggar är det enkelt för HTML-generering att analysera JSTL-koden i dokumentet.

JSTL Core

Kärntaggarna är de vanligaste taggarna i JSP. De ger stöd för

  • Iteration
  • Villkorlig logik
  • Fångstundantag
  • webbadress framåt
  • Omdirigering etc.

För att använda kärntaggar måste vi först definiera taggbiblioteket och nedan är syntaxen för att inkludera ett taggbibliotek.

Syntax:

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

Här,

  • prefix kan användas för att definiera alla kärntaggar och
  • uri är biblioteket med taglib från vilket det importeras

Låt se några av kärntaggarna i detalj,

1. Ut:

  • Resultatet av uttrycket visas i ut-taggen
  • Det kan komma undan XML-taggarna direkt. Därför utvärderas de inte som faktiska taggar

Syntax:

  • Här representerar värdet information till utdata, och det är obligatoriskt
  • Standard är misslyckande med att mata ut information, och det är inte obligatoriskt
  • escapeXML - Det är sant om det slipper XML-tecken.

Exempel:

Coretag_jsp1.jsp

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Core Tag JSP1 

Förklaring av koden:

Kodrad 3: Detta taglib-prefix krävs för alla taggar och prefix som läggs till är 'c'. Därför kan den användas som ett prefix för alla coretags.

Kodrad 12: Här använder vi coretag out med prefixet "c" och detta ut kommer att skriva ut värdet i expressionstaggen. Därför kommer utdata att vara namn

När du kör koden ovan får du följande utdata:

Produktion:

  • Vi får värdet som ett namn från kärntaggen "ut" som kommer att skrivas ut i utflödet.

2. Fånga

  • Den fångar alla kastbara undantag som förekommer i kroppen och visas som utdata.
  • Den används för att hantera felen och för att fånga dem.

Syntax:

Här representerar var namnet på variabeln, som kommer att innehålla kastbart undantag.

Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP2 <% int num = 10/0; %>Undantaget är: $ {guruException}

Förklaring av koden:

Kodrad 3: Detta taglib-prefix krävs för alla taggar och prefix som läggs till är 'c' och kan därför användas som ett prefix för alla coretags

Kodrad 11-13: Coretag-fångst används för att fånga undantaget och skriva ut undantaget. Här tas undantaget upp när 10/0 och det undantaget har namnet "guruException".

Kodrad 14: Vi skriver ut "guruException".

När du kör koden får du följande utdata:

Produktion:

  • Vi får aritmetiska undantag som / med noll, och det skrivs ut i utdata med variabeln "guruException"

3. Importera

  • Vi kan importera ett annat filinnehåll till en JSP-sida som vi gjorde i JSP inkluderar åtgärder.
  • Här kan vi också inkludera URL och innehåll visas på den sidan.

Syntax:

Här var är ett variabelnamn som är en identifierare som kommer att innehålla filnamnet / uri.

uri är relativt filnamn eller urinamn.

coretag_jsp31.jsp

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP 31 

Coretag_jsp32.jsp

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Infoga titel här  Filen har skickats efter import 

Förklaring av koden:

Coretag_jsp31.jsp

Kodrad 3: Detta taglib-prefix krävs för alla taggar och prefix som läggs till är 'c' och kan därför användas som ett prefix för alla coretags

Kodrad 11-12: Här importerar vi filen coretag_jsp32.jsp till den här filen med importtaggen

Kod Line13: Här skriver vi ut filen coretag_jsp32.jsp med uttag.

När du kör koden ovan får du följande utdata.

Produktion:

  • Coretag_jsp32 skrivs ut i utdata eftersom den här filen importerades i coretag_jsp31.jsp.

4. för Varje

  • Den används för att upprepa antalet element i uttalande.
  • Det är samma som en Java forloop.

Syntax:

  • Här representerar var variabelnamn som kommer att innehålla räknarnamn
  • Begin representerar motstartvärde
  • Slut representerar dess slutvärde

Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP4 

Förklaring av koden:

Kodrad 3: Detta taglib-prefix krävs för alla taggar och prefix som läggs till är 'c' och kan därför användas som ett prefix för alla coretags

Kodrad 11-13: Här använder vi "forEach" -slingan där variabelnamnet är "gurucount", som har börjat räknas som 5 och sluträkning som 10. Vi skriver ut den variabla gurucount som har nummer som börjar från 5 till 10.

När du kör koden får du följande utdata

Produktion:

  • Produktionen vi får börjar från 5 till 10.

5. Om

  • Den används för testförhållanden.
  • Om taggen används för att testa ett villkor om det är sant eller inte baserat på detta skulle kodblocket köras.

Syntax:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP5 

Förklaring av koden:

Kodrad 3: Detta taglib-prefix krävs för alla taggar och prefix som läggs till är 'c' och kan därför användas som ett prefix för alla coretags

Kodrad 11: Här ställer vi in ​​variabeln som heter count till 100

Kodrad 12-14: Här använder vi "if condition" där vi kontrollerar om räkningen är lika med 100. Det är lika med 100 då får vi utdata som "Räkningen är 100."

När du kör koden ovan får du följande utdata

Produktion:

  • Eftersom "om" -villkoret är sant får vi resultatet som "Räkningen är 100".

6. omdirigering:

  • Den används för att omdirigera den aktuella sidan till en annan URL genom att ange den relativa URL: en för denna tagg.
  • Den stöder sammanhangsrelaterade webbadresser

Syntax:

Här är url relativ url som den måste omdirigeras till och kontextnamn för den lokala webbapplikationen.

Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Core Tag JSP6 

Förklaring av koden:

Kodrad 3: Detta taglib-prefix krävs för alla taggar och prefix som läggs till är 'c' och kan därför användas som ett prefix för alla coretags

Kodrad 11: Här använder vi "omdirigeringstagg", där vi anger urlnamnet, och när vi klickar på den sidan omdirigeras den till webbplats som har givits för omdirigering.

När du kör ovanstående kod får du följande utdata;

Produktion:

  • Vi får utdata url guru99.com som omdirigeras av coretag_jsp6.jsp

JSP anpassade taggar

  • Det är ett användardefinierat JSP-språkelement.
  • När JSP översätts till en servlet konverteras anpassad tagg till en klass som vidtar åtgärder på ett objekt och kallas som en tagghanterare.
  • Dessa åtgärder när servlet körs anropas av webbcontainern.
  • För att skapa den användardefinierade anpassade taggen måste vi skapa tagghanteraren som utvidgar SimpleTagSupport och måste åsidosätta doTag () -metoden.
  • Vi måste skapa TLD där vi behöver kartlägga klassfilen i TLD.

Fördelar med anpassade taggar i JSP:

  • Portabel - En åtgärd som beskrivs i ett taggbibliotek måste kunna användas i alla JSP-behållare.
  • Enkelt - Osofistikerade användare måste kunna förstå och använda denna mekanism. Leverantörer av JSP-funktionalitet måste ha det lätt att göra den tillgänglig för användare som handlingar.
  • Uttrycksfull - Mekanismen måste stödja ett brett spektrum av åtgärder, inklusive kapslade åtgärder, skriptelement inuti åtgärdsorgan, skapande, användning och uppdatering av skriptvariabler.
  • Användbar från olika skriptspråk - Även om JSP-specifikationen för närvarande endast definierar semantiken för skript på Java-programmeringsspråket, vill vi låta möjligheten för andra skriptspråk vara öppna.
  • Byggt på befintliga koncept och maskiner - Vi vill inte uppfinna whatexists någon annanstans. Vi vill också undvika framtida konflikter när vi kan förutsäga dem

Syntax:

Tänk på att vi skapar testGuru-tagg och vi kan använda handlertestTag-klassen, vilket åsidosätter metoden doTag ().

Class testTag extends SimpleTagSupport{ public void doTag()}

Vi måste också kartlägga denna testTag-klass i TLD (Tag Library Descriptor) eftersom JSP-behållare automatiskt skapar en mappning mellan klassfilen och uri som har nämnts i TLD-filen.

JSP Taggränssnitt

  • Den här klassen måste utvidga klassen SimpleTagSupport.
  • Den här klassen måste åsidosätta doTag () -metoden som ingår i klassen SimpleTagSupport (åsidosättande är en metod som ärvs från föräldraklassen).
  • Detta gränssnitt är ett delgränssnitt för JSPTag-gränssnittet.
  • Det ger metoder att utföra i början och slutet av taggen.
  • Vi måste också kartlägga den här klassen i TLD, dvs Tagbiblioteksbeskrivare

Vi överväger i exemplet nedan

Metod för taggränssnitt

  • doTag () är en metod som vi behöver åsidosätta som innehåller innehållet för taggen.
  • Det tar den aktuella JSP-kontexten med getJSPContext ()

Exempel:

Customtag_jsp1.jsp

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "ex" uri = "WEB-INF / custom.tld"%> Anpassad tagg 

Custom.tld

 1.0  2.0  Test TLD  guruTag  demotest.guruTag  tomt 

guruTag.java (TagHandler)

paket demotest;importera javax.servlet.jsp.tagext. *;importera javax.servlet.jsp. *;importera java.io. *;public class guruTag utökar SimpleTagSupport {public void doTag () kastar JspException, IOException{JspWriter ut = getJspContext (). GetOut ();out.println ("Guru Tag");}}

Förklaring av koden:

guruTag.java (TagHandler)

Kodrad 6: guruTag-klassen utvidgar SimpleTagSupport-klassen som finns i javax.servlet.JSP jar

Kodrad 7: Här överraskar vi doTag () -metoden som kastar JspException och IOException.

Kodrad 9-10: I den här metoden kommer koden att bäddas in i en anpassad tagg som kommer att anropas. Vi tar ett objekt av JspWriter, och det kommer att skriva ut "Guru Tag."

Custom.tld

Kodrad 6: Här är namnet på den anpassade taggen "guruTag."

Kodrad 7: Taggklass är taghandlerclass, dvs. guruTag.java. Det tar hela sökvägen till hanterarfilen som inkluderar katalogvägen för filens plats.

Customtag_jsp1.jsp

Kodrad 3 : Detta taglib-prefix krävs för alla taggar och prefix som läggs till är "ex", det kan därför användas som ett prefix för alla coretags och uri är custom.tld som mappar tagghanteraren.

Kodrad 11: Här definierar vi den anpassade taggen "guruTag", som kommer att kalla hanterarklassen doTag () -metoden och koden inom den kommer att köras.

När du kör koden ovan får du följande utdata

Produktion:

  • Vi får utdata som "GuruTag" från guruTag.java, dvs TagHandler, som åsidosätter doTag () -metoden och som skriver ut "Guru Tag" som utdata.

Sammanfattning:

  • I det här avsnittet lärde vi oss om JSP standard taggbibliotek där vi gjorde kärntaggar och anpassade taggar.
  • Kärntaggar inkluderar för, om, omdirigering, import, fångsttaggar som var taggar som användes för grundläggande ändamål i JSP.
  • Vi gjorde också anpassade taggar där vi kan definiera taggarna och använda den i JSP

Intressanta artiklar...