JavaDabbaDoo.org -Tu comunidad Java parlante Custom Tags
Inicio | Cursos infosintesis.net liberados | Java EE | Creación tradicional de Etiquetas Personalizadas
Creación tradicional de Etiquetas Personalizadas
Paso 1: Operativa

Crear una Etiqueta y su correspondiente Tag Handler (Manejador de Etiquetas)

Un Manejador de Etiquetas es una Clase Java que ejecuta la acción de una Etiqueta Personalizada implementando una serie de métodos predefinidos para que el Contenedor Web los invoque.

El Manejador de Etiquetas de nuestro ejemplo se llama paqtaghandler.FechaActual.java. Al igual que un Servlet o un JavaBean, el fichero FechaActual.class se aloja en el directorio ../WEB-INF/classes/paqtaghandler de nuestra aplicación Web.

Para crear el Manejador de Etiquetas en cuestión tenemos que seguir los siguientes pasos:

Nos situamos en la ventana Projects y con el botón derecho del ratón seleccionamos el proyecto protaghandler. Entonces elegimos new | Other...

en el cuadro de diálogo New File elgimos Web | Tag Handler y hacemos clic sobre el botón Next

NetBeans 6 - Nuevo Manejador de Etiquetas - New File | Web | Tag Handler

en el cuadro de diálogo New Tag Handler introducimos el nombre del Manejador de Etiquetas FechaActual en el campo de texto Class Name: e indicamos que esta Clase pertenece al paquete paqtaghandler en el campo de texto Package:.

El nuevo Manejador de Etiquetas puede heredar de la Clase javax.servlet.jsp.tagext.SimpleTagSupport o de la Clase javax.servlet.jsp.tagext.BodyTagSupport . Si hereda de esta segunda Clase se pueden controlar las acciones dependiendo de si el Contenedor Web está entrando en la etiqueta de principio o está saliendo de la etiqueta de fin. En este ejemplo sólo queremos que el Contenedor Web muestre la fecha actual cuando se encuentre con la etiqueta personalizada <libreria1:fechaActual/>. Así pues, elegiremos el radiobotón Simple TagSupport (J2EE 1.4). De todas formas hay que tener en cuenta que la Clase javax.servlet.jsp.tagext.SimpleTagSupport ha aparecido en la versión J2EE 1.4 y la versión JSP 2.0. Por tanto las versiones anteriores no soportan esta Clase. Seguidamente hacemos clic sobre el botón Next

NetBeans 6 - Nuevo Manejador de Etiquetas - New Tag Handler | Name and Location | Class name: FechaActual | Package: paqtaghandler

en el cuadro de diálogo New File vamos a cambiar el nombre a nuestra Etiqueta Personalizada FechaActual por fechaActual y también vamos a incluir la Etiqueta Personalizada en el Descriptor de la Librería de Etiquetas.

NetBeans 6 - Nuevo Manejador de Etiquetas - New  Files | TLD Information | Add Corresponding Tag to the Tag Library Descriptor

para incluir la Etiqueta Personalizada en el Descriptor de la Librería de Etiquetas mantenemos seleccionada la casilla de verificación Add Corresponding Tag to the Tag Library Descriptor y seguidamente hacemos clic sobre el botón Browse.... entonces navegamos hasta encontrar el Descriptor de la Librería de Etiquetas libreria1.tld. Una vez hemos seleccionado la Librería de etiquetas en cuestión hacemos clic sobre el botón Slect File...

NetBeans 6 - Nuevo Manejador de Etiquetas - Browse Files | Folders | Web Pages | WEB-INF | tlds | libreria1.tld

ahora en el campo de texto Tag Name: cambiamos el nombre de la etiqueta a fechaActual y también seleccionamos el radiobotón empty.

Para salir de este cuadro de diálogo hacemos clic sobre el botón Finish

NetBeans 6 - Nuevo Manejador de Etiquetas - New  Files | TLD Information | Tag Name: fechaActual

El asistente ha ampliado el fichero libreria1.tld añadiendo un subelemento llamado <tag> al elemento raíz.

<?xml version="1.0" encoding="UTF-8"?>

<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">

 <tlib-version>1.0</tlib-version>
 <short-name>biblioteca1</short-name>
 <uri>/WEB-INF/tlds/descriptorEtiquetas</uri>
 
<tag>
  <name>
fechaActual</name>
  <tag-class>
paqtaghandler.FechaActual</tag-class>
  <body-content>
empty</body-content>
 </tag>

</taglib>

Este es el código del Manejador de Etiquetas FechaActual

package paqtaghandler;

import javax.servlet.jsp.tagext.SimpleTagSupport;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;

public class FechaActual extends SimpleTagSupport {
 public void
doTag() throws JspException {
  
JspWriter out = getJspContext().getOut();

  try {
   JspFragment f = getJspBody();
   if (f != null) {
    f.invoke(out);
   }
  } catch (java.io.IOException ex) {
   throw new JspException(ex.getMessage());
  }
 }
}

Página anterior
Ignasi Pérez Valls
fundador-director Infosintesis Solutions Group
asesor-formador independiente
ignasiperez[ARROBA]javadabbadoo[PUNTO]org
Junio 2009
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...