Home > Java > JSP - criar tags personalizadas

JSP - criar tags personalizadas

Tags JSP funciona como um plugin para suas páginas JSP. Estes são basicamente classes Java que são executadas quando a página jsp obter prestados pelo servidor e navegador. JSP vem com a Tag como construir jsp: include, jsp: forward, mas não são suficientes para atender à Internet. Para superar esse problema você pode criar etiquetas com base em sua exigência de negócio. Este artigo irá orientá-lo como podemos criar um custom tags para JSP.

Custom Tags JSP:
Todos JSP Custom Tags implementa Tag Interface. Para saber mais informações sobre o Tag Interface referir JSP Custom Tag Interface . Mas nós não utilizamos Tag Interface usaremos TagSupport e BodyTagSupport, é porque alguma implementação padrão do Tag interface já está implementada em TagSupport BodyTagSupport e assim fica mais fácil escrever código tag personalizado.

Diferença entre TagSupport e BodyTagSupport:
Em TagSupport que define todos os atributos necessários para exibir os dados no caso de, em BodyTagSupport passamos atributos e conteúdo do corpo da Tag JSP. BodyTagSupport não é usado com freqüência menos que você queira manipular o conteúdo do corpo. Passando atributos para as tags personalizados não é obrigatório.

Exemplo de TagSupport:

  <test /> :showTime 

Exemplo de BodyTagSupport:

  <test> :showTime
 Time atual:
 </ Teste> 

Seu email:


Se você ver na BodyTagSupport passamos algum conteúdo do corpo da tag xml. Embora o conteúdo do corpo não é obrigatório, mas ele irá degradar o desempenho se você não está usando seu corpo para o tag personalizado e você não estiver usando TagSupport.

Importante chamada de função no Código Custom Tag JSP:
doStartTag ():
Esta função são chamados quando a tag jsp inicializados. Esta função de um valor inteiro que já está definido na Tag interface em forma de nome da variável. Nós normalmente SKIP_BODY retorno. SKIP_BODY informa o mecanismo de jsp para ignorar o corpo da tag jsp.

doEndTag ():
Esta função são chamados logo após doStartTag () função de transformação é feito. Semelhante ao doStartTag () esta função também retorna um valor inteiro. Normalmente, voltamos EVAL_BODY. EVAL_BODY informa o mecanismo de jsp para processar o código jsp restantes.

Simples Código Tag personalizado:

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

 ; import java.io. *;
 ; javax.servlet.jsp importação .*;
 ; javax.servlet.jsp.tagext.TagSupport de importação;

 TagSupport { public class Test (estende TagSupport
    doStartTag ( ) throws JspException { público doStartTag (int) (throws JspException
       try (
    	   ( ) ; JspWriter out = pageContext. GetOut ();
    	   "This is my first tag!" ) ; para fora. print ("Este é o meu primeiro tag!");
       ( IOException ioe ) { ) Catch (IOException OIE) (
      	  ; OIE. printStackTrace ();
          "IOException while writing data to page" + ioe. getMessage ( ) ) ; throw JspException novo ("IOException durante a gravação de dados para a página" + OIE. getMessage ());
       )
       retorno SKIP_BODY;
    )

    doEndTag ( ) throws JspException { público doEndTag (int) (throws JspException
      EVAL_PAGE retorno;
    )
 ) 

Explicação Code:

  • Classe estende TagSupport indicando que não estamos usando a classe BodyTagSupport.
  • doStartTag () função grava um conteúdo String usando pageContext.getOut (), é esse o resultado que vai ficar escrito na página jsp.
  • doStartTag () retorna Função SKIP_BODY. O valor para essa variável já está definida no Tag Interface.
  • doEndTag () Função EVAL_PAGE retorna. O valor para essa variável já está definida no Tag Interface.

Execução de código Java JSP Tag em JSP:
Agora nosso próximo passo seria criar um Tag Library Descriptor (TLD) do arquivo. Esse arquivo informa o motor JSP sobre a Custom Tag JSP que vai se acostumar dentro do código JSP.

  = "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 > -version <tlib> 1,0 </> tlib
	 1.2 </jsp > -version <jsp> 1,2 <> JSP /
	 test </short > <short -name teste </> curto

	 <tag>
		 <nome> TestingTag </ name>
    		 <tagclass> com.hiteshagrawal.Test <tagclass> /
    		 > <bodycontent Vazio </> bodycontent
	 </ Tag>
 </> Taglib 

Se você ver que eu tiver definido um arquivo TLD para o código JSP acima escrito. Seu JSP Custom Tag deve ser escrito dentro de "tag" elemento. Permitam-me que a escrita explaing arquivo xml:

  • tlib-version - Como o nome sugere refere-se à Biblioteca Tag Version
  • Versão jsp - Refere-se a versão que você está usando JSP
  • Nome de curta duração - Refere-se o nome do Custom JSP Tag que seu código jsp vai estar se referindo a
  • nome - Refere-se ao nome do Custom Tags
  • tagclass - Refersn a estrutura de classes utilizadas para o seu JSP Tags
  • bodycontent - Este é utilizada no caso estamos usando BodyTagSupport, em TagSupport mantivermos esse vazio

Salve este arquivo TLD pelo nome test.tld dentro da pasta WEB-INF.

Referência TLD arquivo em página JSP:
Existem várias maneiras de refererence TLD arquivo em JSP e estou discutindo um deles neste artigo.

Aplicação JSP JSP Custom Tags:

 "test" uri = "/WEB-INF/test.tld" %> < html > < head > < title > JSP Custom Tag Demo </ title > </ head > < body > < test : TestingTag /> </ body > </ html > <% @ Taglib prefix = "teste" uri = "/ WEB-INF/test.tld"%> <html> <head> <título> JSP Custom Tag Demo </ title> </ head body> <> teste: < TestingTag /> </ body> </ html> 

Explicação JSP Code:
Se você ver que eu estou fazendo referência a taglib que será chamado pelo nome de "teste". Também estou passando o caminho do arquivo TLD estará se referindo.
Finalmente eu estou chamando a etiqueta personalizada, como mostrado na linha n º: 7

Saída JSP:
Quando executado o código JSP acima obtemos o seguinte resultado.

  Esta é a minha marca em primeiro lugar! 


Custom Search

Artigos populares:

Compartilhe e 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: Categoria: Java Tags:
  1. 28 de dezembro de 2008 às 12:04 | # 1

    Na verdade, a maneira mais fácil implementá-las é o uso de arquivos tag. IWebMvc faz uso pesado de tags, ambos criados a partir de arquivos e / ou classes. Dê uma olhada se interessado em um mundo "real" exemplos.

  2. 29 de dezembro de 2008 às 00:21 | # 2

    Veja também Coldtags suite: http://www.servletsuite.com/jsp.htm
    É um maior conjunto de tags JSP personalizadas pela Internet.

  3. 17 de janeiro de 2009 às 03:23 | # 3

    Bom tutorial.

  4. Yuva
    06 de maio de 2009 às 22:24 | # 4

    Nice tutorial, fácil de entender. Obrigado para o mesmo.

  1. 27 março, 2010 às 08:30 | # 1