TagLibs y JSPs

4
68209

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 https://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>https://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 ..

4 Comentarios

  1. Buenas existe algun tutorial o manera de poder extender etiquetas o componentes de Struts?? He visto varios ejemplos de utilización de JSF extendiendo componentes hay forma de hacer algo similar con Struts?? Agradecería algun ejemplo quiero integrar con JQuery..

Dejar respuesta

Please enter your comment!
Please enter your name here