Home > Java > JSP - Aangepaste Tags

JSP - Aangepaste Tags

Tags JSP werkt als een plugin om uw JSP-pagina's. Deze zijn in principe Java-klassen die worden uitgevoerd, wanneer JSP-pagina te krijgen gemaakt door de server en browser. JSP wordt geleverd met in te bouwen tags zoals jsp: include, jsp: forward, maar ze zijn niet voldoende om tegemoet te komen aan de Web Wereld. Om dit probleem te verhelpen kunt u het ontwerp op basis van tags uw bedrijf eis. Dit artikel zal u begeleiden hoe we kunnen zorgen voor een aangepaste tags voor JSP.

JSP Custom Tags:
Alle JSP custom tags implementeert Tag Interface. Om meer te weten informatie over de interface verwijzen naar Tag JSP Tag Custom Interface . Maar we hoeven niet direct te gebruiken interface Tag we in plaats daarvan gebruik BodyTagSupport TagSupport, en dit is omdat sommige standaard uitvoering van Tag Interface is al geïmplementeerd in TagSupport en BodyTagSupport zodat het gemakkelijker wordt om code te schrijven aangepaste label.

Verschil tussen TagSupport en BodyTagSupport:
In TagSupport definiëren we alle attributen die nodig zijn om de gegevens weer te geven waar zoals in BodyTagSupport passeren we attributen lichaam en inhoud aan de JSP Tag. BodyTagSupport wordt niet vaak gebruikt, tenzij u de inhoud van het lichaam te manipuleren. Passing attributen om de aangepaste tags is niet verplicht.

Voorbeeld van TagSupport:

  <test :showTime /> 

Voorbeeld van BodyTagSupport:

  <test :showTime>
 Huidige tijd:
 </ Test> 

Uw e-mailadres:


Als je ziet in BodyTagSupport passeren we enkele instantie de inhoud van de XML-tag. Hoewel de inhoud van het lichaam is niet verplicht, maar het zal de prestaties verslechteren als u geen gebruik maakt van het lichaam voor uw aangepaste label en u geen gebruik maakt van TagSupport.

Belangrijke Function Call in JSP Custom Tag Code:
doStartTag ():
Deze functie aangeroepen wanneer de JSP-tag te krijgen geïnitialiseerd. Deze functie een integer waarde die al in Tag-interface gedefinieerd in de vorm van variabele naam. We SKIP_BODY normaal terug. SKIP_BODY vertelt het JSP engine om het lichaam van de JSP-tag overslaan.

doEndTag ():
Deze functie gecalled net na doStartTag ()-functie verwerking wordt gedaan. Net als bij doStartTag () Deze functie geeft ook een integer waarde. Normaal gesproken zijn we terug EVAL_BODY. EVAL_BODY vertelt de JSP-engine om de resterende jsp code proces.

Eenvoudige Custom Tag Code:

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
  ; com.hiteshagrawal pakket;

 ; invoer java.io. *;
 ; invoer javax.servlet.jsp .*;
 ; javax.servlet.jsp.tagext.TagSupport invoer;

 TagSupport { public class Test breidt TagSupport (
    doStartTag ( ) throws JspException { public int doStartTag () (gooit JspException
       try (
    	   ( ) ; JspWriter uit = pageContext. Uitstappen ();
    	   "This is my first tag!" ) ; uit. print ("Dit is mijn eerste tag!");
       ( IOException ioe ) { ) Catch (IOException OIE) (
      	  ; OIE. printStackTrace ();
          "IOException while writing data to page" + ioe. getMessage ( ) ) ; werpen een nieuw JspException ("IOException tijdens het schrijven van data naar de pagina" + OIE. GetMessage ());
       )
       terug SKIP_BODY;
    )

    doEndTag ( ) throws JspException { public int doEndTag () (gooit JspException
      terug EVAL_PAGE;
    )
 ) 

Code Toelichting:

  • Klasse breidt TagSupport aangeeft we zijn niet met behulp van BodyTagSupport klasse.
  • doStartTag () functie schrijft een string inhoud met behulp van pageContext.getOut (), vormt dit de output die ervoor zal zorgen geschreven op uw JSP-pagina.
  • doStartTag () functie geeft SKIP_BODY. De waarde voor deze variabele is reeds gedefinieerd in Tag-interface.
  • doEndTag () functie geeft EVAL_PAGE. De waarde voor deze variabele is reeds gedefinieerd in Tag-interface.

Uitvoering van JSP Tag Java-code in JSP:
Nu is onze volgende stap zou zijn het creëren van een Tag Library Descriptor (TLD) bestand. Dit bestand vertelt het JSP Engine over de JSP Custom Tag dat zal wennen in de JSP-code.

  = "ISO-8859-1" ?> <? Xml version = "1.0" encoding = "ISO-8859-1"?>
 <! DOCTYPE taglib PUBLIC "- / / Sun Microsystems, Inc / / DTD JSP Tag Library 1.2 / / EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
 <taglib>
	 1.0 </tlib > <tlib -version> 1,0 </ tlib>
	 1.2 </jsp > <jsp -version> 1.2 </ jsp>
	 test </short > <short -name> test </ korte>

	 <Tag>
		 <naam> TestingTag </ name>
    		 <tagclass> com.hiteshagrawal.Test </ tagclass>
    		 <bodycontent> leeg </ bodycontent>
	 </ Tag>
 </ Taglib> 

Als je kunt zien heb ik een bepaald TLD-bestand voor de bovengenoemde schriftelijke JSP code. Uw Custom JSP-tag moet worden geschreven in "tag"-element. Laat me explaing de schriftelijke xml-bestand:

  • tlib-versie - Zoals de naam suggereert het verwijst naar de Tag-bibliotheek versie
  • jsp-versie - Verwijst naar de JSP-versie die u gebruikt
  • korte-naam - verwijst naar de naam van de JSP-Custom Tag dat uw JSP code wordt verwezen naar
  • naam - de naam verwijst naar de Custom Tags
  • tagclass - Refersn naar de klasse-structuur gebruikt voor uw JSP Tags
  • bodycontent - Dit wordt gebruikt in het geval dat we met behulp van zijn BodyTagSupport in TagSupport houden we deze lege

Bewaar deze TLD-bestand op naam test.tld binnen uw WEB-INF map.

Referentie Bestand in TLD JSP-pagina:
Er zijn meerdere manieren om refererence TLD bestand in JSP en ik ben een van hen te bespreken in dit artikel.

Uitvoering van JSP Custom JSP Tags:

  "test" uri = "/WEB-INF/test.tld" %> <% @ Taglib prefix = "test" uri = "/ WEB-INF/test.tld"%>
 <Html>
 <Head>
   JSP Custom Tag Demo </ title > <Title> JSP Custom Tag Demo </ title>
 </ Head>
 <Body>
		 TestingTag /> <Test: TestingTag />
 </ Body>
 </ Html> 

JSP Code Toelichting:
Als je ziet ben ik te verwijzen naar de taglib die krijgt opgeroepen door de naam "test". Ook ben ik langs het pad van de TLD-bestand zal worden verwezen.
Tot slot roep ik de Custom Tag, zoals aangegeven in de lijn nr.: 7

JSP Output:
Wanneer we het bovenstaande uitgevoerd JSP-code krijgen we de volgende output.

  Dit is mijn eerste tag! 


Custom Search

Populaire artikelen:

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • IndianPad
  • LinkedIn
  • Live
  • MySpace
  • Netvibes
  • RSS
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Reddit
  • Add to favorites
  • PDF
  • Twitter
Tags: Categorieën: Java Tags:
  1. 28-12-2008 om 12:04 | # 1

    Eigenlijk is de makkelijkste manier om ze uit te voeren is met behulp van bestanden tag. IWebMvc maakt zwaar gebruik van tags, zowel gemaakt op basis van bestanden en / of klassen. Neem een kijkje, indien interesse in een "echte wereld" voorbeelden.

  2. Hol
    29 dec 2008 om 00:21 | # 2

    Zie ook Coldtags suite: http://www.servletsuite.com/jsp.htm
    Het is een de grootste verzameling aangepaste JSP tags over het Net.

  3. 17 januari 2009 om 03:23 | # 3

    Goede tutorial.

  4. Yuva
    5.6.2009 om 22:24 | # 4

    Nice tutorial, makkelijk te begrijpen. Bedankt voor het zelfde.

  1. 2010-3-27 om 08:30 | # 1