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í
Regístrate para votar
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.
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.
Comentarios
-
Rafael Franco Moreno2009-06-17 - 04:54:13 AMmuy buen ejemplo a ver si pones algo mas dificil
-
guillermo olivares2008-06-07 - 04:48:38 AMMUCHAS 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.
-
carolina casanova2007-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
-
fabian2007-06-08 - 09:05:54 PMexelente
-
Roberto2006-05-25 - 06:41:45 PMBuenas 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








