O que é uma Taglib?

Uma Taglib é nada mais nada menos que uma biblioteca de tags customizadas que são utilizadas na composição de páginas JSP. Em um passo adiante, podemos dizer que uma Taglib é uma biblioteca de “classes Java” que são utilizadas “na forma de tags” para auxiliar na geração de conteúdo dinâmico em uma página JSP.

Por que utilizar Tags Customizadas?

Tags Customizadas nos ajudam a eliminar consideravelmente a utilização de scriptlets e redundância de código em páginas JSP. “Escrevemos uma tag customizada que gere o conteúdo dinâmico que precisamos e a utilizamos em quantas páginas JSP desejarmos” .

Composição de uma Tag Customizada

Uma tag customizada JSP é composta basicamente por dois elementos:

  • Uma classe Java sendo a sua implementação.
  • Um arquivo .tld contendo os seus metadados – suas descrições .

Mostre-me a data atual do sistema!

Como um exemplo didático de construção e utilização de tag customizada, vamos criar uma tag que apresente a data atual do sistema em formato longo (ex.: Quarta-feira, 9 de Fevereiro de 2005).

Criando nossa tag customizada

  1. Nosso primeiro passo é implementar a classe Java que proverá o conteúdo que desejamos, ou seja, a data atual do sistema em formato longo.
    
    package minhastags; 
     import java.io.IOException; 
    import java.text.SimpleDateFormat; 
    import java.util.Calendar; 
     import javax.servlet.jsp.JspException; 
    import javax.servlet.jsp.tagext.TagSupport; 
     public class HoraAtualTag extends TagSupport { 
     /** 
    * HoraAtualTag 
    */ 
    public HoraAtualTag() { 
    super(); 
    } 
     /** 
    * doStartTag 
    * 
    * @see javax.servlet.jsp.tagext.Tag#doStartTag() 
    */ 
     public int doStartTag() throws JspException { 
    try { 
    String formatoLong = "EEEEEE',' dd 'de' MMMM 'de' yyyy"; 
    SimpleDateFormat formatter = new SimpleDateFormat(formatoLong); 
    String horaAtual = formatter.format(Calendar.getInstance().getTime()); 
      pageContext.getOut().print(horaAtual); 
    } catch (IOException e) { 
    throw new JspException(e.getMessage()); 
    } 
     return SKIP_BODY; 
    } 
    }
    
  2. Agora que já temos nossa classe Java que prove o conteúdo desejado para nossa tag customizada, precisamos criar um arquivo que a descreva. Um arquivo descritor de Taglib pode conter a descrição de mais de uma tag customizada, por isso vamos criar o arquivo como “minhas_tags.tld” e adicionar nele o conteúdo apresentado abaixo.
    
    ?xml version="1.0" encoding="iso-8859-1" ?> 
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" 
    " http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib> 
         <tlibversion>1.0</tlibversion> 
         <jspversion>1.1</jspversion> 
         <shortname>MinhasTags</shortname> 
         <info>Minhas Tag's Customizadas</info>
         <tag> 
              <name>horaAtual</name> 
              <tagclass>minhastags.HoraAtualTag</tagclass>           
              <bodycontent>JSP</bodycontent> 
              <info>Mostra a hora atual do sistema em formato longo</info>      
              </tag> 
    </taglib>
    

    Utilizando nossa tag customizada

    Nossa Taglib já está pronta! Agora só falta configurarmos ela em uma aplicação web e utiliza-la em uma página JSP.

    1. No arquivo “web.xml” da sua aplicação web adicione o conteúdo abaixo para configuração da Taglib.
      
      /<taglib>  
           <taglib-uri>/tags/minhas_tags</taglib-uri> 
           <taglib-location>/WEB-INF/tags/ minhas_tags.tld</taglib-location> 
      </taglib>
    2. Estando a Taglib configurada na aplicação web, resta apenas utiliza-la em uma página JSP. A seguir vemos uma página JSP simples que utiliza nossa tag customizada para exibir a data atual do sistema em formato longo.
      
      <%@ taglib uri ="/tags/ minhas_tags " prefix ="mt"%>
      <html> 
      <head> 
      <title>Bem-vindo!</title> 
      </head> 
      <body> 
      Olá! Hoje é <mt:horaAtual/> 
      <br> 
      Seja bem-vindo! 
      </body> 
      </html>
      

      Todo esse trabalho para isso?

      Talvez você esteja se perguntando: “Todo esse trabalho para isso?” Mas espere um pouco... Esse foi um exemplo simples, Taglib pode fazer ainda muito mais por você – ou você pode fazer ainda muito mais com Taglib.

      Como foi dito no inicio, Taglib é uma biblioteca de tags customizadas, implementadas em classes Java , que auxiliam na geração de conteúdo dinâmico em páginas JSP. Sendo assim, você pode criar várias tags customizadas para: gerar tabelas dinâmicas com dados vindos de um banco de dados; exibir dados do usuário logado no sistema; gerar “select-box” dinâmicas; e tudo aquilo que sua criatividade – necessidade! – lhe permitir, e utilizá-las em quantas páginas JSP você desejar, sem redundância de código e tudo mais.