kropp < /prefix : tagname >
Den mest grundläggande anpassad tagg , en så kallad enkel tagg , har ingen kropp och inte kräver attribut. En anpassad tagg som innehåller en kropp kallas body-taggen . Anpassade etiketter kan kapslas . Attributvärden kan ställas in med hjälp av JSP uttryck . Det finns två grundläggande komponenter du bygger för att skapa en anpassad tagg : Tag Library beskrivningsfil och taggen handler Java klass . Dessa komponenter är registrerade hos servlet container i programmets web.xml filen . Skapa taggbiblioteket beskrivningsfil
taggbiblioteket Descriptor ( TLD ) fil är en
XML -fil som innehåller metadata som definierar dina egna taggar . Till exempel definierar följande TLD fil en enkel tagg som heter " myTag " med ett attribut , " Maxvärde , " och ingen kropp . Den Maxvärde attributet krävs , och värdet kan ställas in med en runtime uttryck ( anges av rtexprvalue elementet ) , vilket måste returnera ett heltal .
< ? Xml version = " 1.0 " encoding = " ISO - 8859-1 " > < DOCTYPE taglib PUBLIC ? ! " - //Sun Microsystems , Inc. //DTD JSP TagLibrary 1,2 //EN " tagg tagg med en Addera Skapa Tag Handler
Varje anpassad tagg har en tagg handler som sätter och får sina attribut , processer i kroppen , och genomför åtgärder . Ett tag handler är en Java- klass som implementerar javax.servlet.jsp.tagext.Tag eller , ännu bättre , sträcker sig en underklass av tagg . Tag handler klasser har tillgång till samma implicita objekt som JSP-sidor , såsom begäran , svar och session .
Skapa en enkel klass tag handler genom att förlänga javax.servlet.jsp.tagext.TagSupport . Genomföra doStartTag , doEndTag och metoder frisättning . Den doStartTag körs när start -taggen påträffas , och utför den viktigaste åtgärden för taggen , kastar sådana utföra beräkningar och skriva ut resultaten .
Public int doStartTag ( ) JspException { try { ... din kod ... } catch ( Exception ex ) { ... felhantering ... } retur SKIP_BODY ;}
doEndTag metoden exekveras när slut-tagg påträffas . Återgå EVAL_PAGE om resten av JSP-sidan ska utvärderas . Släppet Metoden ska städa upp och släppa några resurser som används av taggen handler klassen .
P Om din egen tagg har attribut , innehålla en medlem variabel och genomföra set och få metoder för varje egenskap . Om attributet inte krävs , ange ett standardvärde . För nödvändig Maxvärde attribut :
private int Maxvärde ,
public void setMaxValue ( int val ) { Maxvärde = val; } public int getMaxValue ( ) {return Maxvärde ;}
body-taggen hanterare som inte interagerar med taggen kropp innehåll extend javax.servlet.jsp.tagext.TagSupport . Genomföra samma metoder som för en enkel etikett . Också genomföra doAfterBody metod för att tolka och använda kroppen innehållet . För truck body-taggen som behöver interagera med taggens kropp innehåll, förlänga javax.servlet.jsp.tagext.BodyTagSupport och både doInitBody och doAfterBody metoder . Addera Update web.xml
När du har skapat toppdomänen filen och tag handler klass , redigera web.xml filen för att registrera ditt nya tag bibliotek med servlet container . Lägg ett taglib avsnitt i slutet före slutet taggen
använder egna Tags
I JSP -filen som kommer att använda dina egna taggar , använd taglib direktivet att ange taggbibliotek du kommer att använda och det prefix du ska använda att hänvisa till ditt bibliotek . Du kan antingen hänvisa till ditt bibliotek uri med sökvägen :
< % @ taglib uri = " /WEB-INF/exampletaglib.tld " prefix = " t.ex. " % >
eller det namn du angav i web.xml som taglib - uri :
< % @ taglib uri = " mytags " prefix = " t.ex. " % >
Använd din egen tagg i ditt JSP där du vill att åtgärden ska ske , med hjälp av prefix du angav till taglib direktivet :