Estás en:

informaciónDESARROLLADO POR:
icono_twiter icono_linkedin icono_linkedin icono_xing

Creador y propietario de AdictosAlTrabajo.com, Director General de Autentia S.L., Ingeniero Técnico de Telecomunicaciones y Executive MBA por el Instituto de Empresa 2007. Twitter: @rcanalesmora

Autor del Libro: Informática profesional, las reglas no escritas para triunfar en la empresa

Puedes consultar mi CV y alguna de mis primeras aplicaciones (de los 90) aquí

Fecha de publicación del tutorial: 2003-07-05
Tutorial visitado 36.264 veces36.264
Descargar el tutorial en PDF


Regístrate para votar
Share |

TagLibs y JSPs

En la tecnología Java y Web, las páginas JSP (Java Server Pages) son uno de los elementos más importantes para crear la capa de presentación. Los JSP son plantillas HTML donde podemos insertar porciones de código Java.

Un buen diseño es vital.

Uno de los principales errores que se suele cometer al desarrollar aplicaciones es pensar que es una aplicación Web.....

Si ..si ... como suena. Una aplicación es un programa o conjunto de programas que solucionan un problema. Que luego el modo con el que interactúe un usuario sea un Web, una aplicación en Windows o desde un móvil .... es algo para lo que debemos estar preparados.... y nuestro programa también (y sino que se lo pregunten a quien desarrollaban aplicaciones Hosts hace 15 años)

El fallo suele estar en que al pensar que nuestra aplicación va a ser un Web, la lógica de presentación y de negocio, tarde o temprano se acaban mezclando y no se pueden reutilizar los desarrollos. En nuestra plantillas JSP, metemos conexiones a la base de datos, código completo, etc ..... cosas que no deberían ir en este tipo de componentes.

Para minimizr estos errores, inicialmente, se realizan JSPs muy simples y se invocan a otros componentes (JavaBean) que poseen (o invocan a otros componentes como los EJBs) la lógica de negocio. Cuando sabemos un poco más, se combinan los JSPs con otros componentes llamados Servlets para construir nuestra aplicaciones (en un esquema llamado MVC, Modelo-Vista-Controlador)

Aún así, los elementos que deben representar los JSP a veces requieren de mucho código..... por lo que debemos utilizar otro tipo de componentes más orientados a presentación para ayudarnos a simplificar las páginas, e incluso, proporcionar librerías de funciones para simplificar la labor a otros programadores menos avanzados (sin desmerecer porque seguro que hacen muchas cosas mejor que nosotros). Estos componentes son los denominados librerías de etiquetas o TagLibs.

Las TagLibs o librería de etiquetas nos permiten crear un nuevas etiquetas, que podemos incluir en nuestros JSPs.

TagLib simple

Como primer ejemplo, vamos a crear una nueva etiqueta que cuando alguien la incluya ... muestre un mensaje retornado por un programa Java.

Como editor vamos a usar el GEL (por nada especial ... podríamos haber usado el notepad.. pero así variamos)

Podemos ver que introducimos en nuestro JSP una instrucción para incluir la librería de Tags y nuestra etiqueta <roberto:mensaje/>

Nuestra librería, vemos que tiene un parametro llamado URI que nos sirve para poder identificarla de un modo único y que no entre en conflicto con otras librerías. En este caso hemos elegido http://www.adictosaltrabajo.com/librerias (Supongo que a nadie en el mundo se le ocurrirá ponerle el mismo nombre)

 

Vamos a ver que insertando muy poca información ..... se puede desencadenar procesos muy complejos. 

Para que el sistema sepa que tiene que hacer cuando se encuentre estas instrucciones tenemos que hacer algunas cosas ... 

Configurar la WebApp

En nuestro caso, estamos usando TOMCAT y vamos a modificar la aplicación de Ejemplo

 

Añadimos la declaración de la librería y el trayecto del fichero donde pondremos la descripción de las etiquetas que tenemos y como deben procesarse cada una .....  /WEB-INF/jsp/roberto-taglib.tld

 

Definir las etiquetas

Ahora construimos el fichero (copiando y pegando de otro) donde decimos que la etiqueta se va a llamar mensaje y que la clase será roberto.etiquetasimplerc 

<?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/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>roberto</short-name>
<uri>http://www.adictosaltrabajo.com/librerias</uri>
<description>
Librerias de ejemplo de Roberto
</description>

<tag>
<name>mensaje</name>
<tag-class>roberto.etiquetasimplerc</tag-class>
<body-content>empty</body-content>
<description>
Muestra un mensaje simple.
</description>
<attribute>
<name>variable</name>
<required>false</required>
</attribute>
</tag>
</taglib>

Construir el código

El código es simple.... en este caso, cuando se procese la etiqueta ... mostraremos en la salida estandar ... un mensaje.

package roberto;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class etiquetasimplerc extends TagSupport
{
public int doEndTag() throws JspException
{
try
{
JspWriter salida = pageContext.getOut();
salida.println("Este es el texto del Tag");

}
catch(Exception e)
{
System.out.println("Error en la libreria de tags");
}

return EVAL_PAGE;
}
}

No olvidar donde poner este código

Y la salida ...

Esto seguro que nos da que pensar .... no es tan complicado .... y da mucho juego....

Este es el ejemplo más simple y en otros tutoriales os ensañaremos otras posibilidades avanzadas como pasar parámetros, etiquetas anidadas, control de flujo de la página, etc.

Sobre el Autor ..

Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Comentarios

  1. Rafael Franco Moreno
    2009-06-17 - 04:54:13 AM

    muy buen ejemplo a ver si pones algo mas dificil

  2. guillermo olivares
    2008-06-07 - 04:48:38 AM

    MUCHAS GRACIAS POR ESTE APORTE A QUIENES RECIEN ESTAMOS EMPEZANDO PERO QUISIERA SABER DONDE PUEDO DESCARGASR LA VERSION LIBRE DE ESTE SOFTWARE GEL ESQ NESECITO PROGRAMAR Y LO ENCUENTRO POR NINGUL LADO LE AGARADECERIA MECHO GRACIAS.

  3. carolina casanova
    2007-06-28 - 10:18:58 PM

    ...hola--- lo que sucede es que trate de implementar el ejemplo ,,del tutorial de los tagslib pero no me funciona.....no puede cargar la clase roberto.etiquetasimplerc sespero me puedan ayudar

  4. fabian
    2007-06-08 - 09:05:54 PM

    exelente

  5. Roberto
    2006-05-25 - 06:41:45 PM

    Buenas tardes! Soy un estudiante que actualmente esta realizando elproyecto final de carrera y mas de una vez me he topado con sus tutoriales. Decirle que lqas explicaciones ueq da dejan mucho que desear, ya que se salan pasos y/u otros pasos parece que da por supuesto que la gente ya lo sabe y no tiene por que ser asi. Me parece muy bien que quiera captar gente para que accedan a sus cursos pero lo que no me parece bien es que vaya dejando por ahi tutoriales que puedan confundir a la gente. Saludos