Partiendo del proyecto del viernes (eticom-discografica-servlet), vamos a modificarlo empleando etiquetas personalizadas, que son etiquetas de uso parecido a las etiquetas HTML para la representación de datos en el archivo jsp (Servlet). Este proyecto es el "eticom-discografica-servlet-JSTL".
Lo primero que haremos será crear una nueva dependencia (Maven/add dependency):
Ahora hacemos una clase (SimpleTag.java) que extienda de TagSupport.
Implemento los métodos 'doStartTag' y 'doEndTag', a través de la ruta menú Contextual/source/Override/Implements Methods. Esta clase va a servir para representar su contenido con un formato determinado, en este caso vamos a aplicarle color a un texto. La clase queda así: SimpleTag.java. Como se puede ver, se han implementado los getter y setter de los atributos (color y mensaje).
Después creamos el TLD (Tag Library Descriptor), es decir, el archivo librería donde vamos a describir las etiquetas que vamos a usar. Así pues, creamos una carpeta llamada TLD en la carpeta WEB-INF de nuestro proyecto, y dentro de ella el archivo 'simple.tld'. El resultado de este archivo es este: simple.tld.
Ahora tenemos que definir las librerías de etiquetas en el archivo web.xml. Incluimos la creada anteriormente (simple.tld). El archivo queda así: web.xml (solo hemos añadido la etiqueta jsp-config, lo demás estaba ya).
Finalmente importamos la librería en nuestro archivo JSP. Esto es lo que hay que incluir:
...yo lo añado en mi 'index.jsp'. uri="/simple" indica el lugar donde está la librería, y prefix="ex" indica que las etiquetas que comiencen con ex pertenecen a 'simple.tld'. Podíamos haber puesto cualquier otro prefijo. Si en la etiqueta donde he puesto el colo y el mensaje (ex:simpleTag color="red" mensaje="discografia con TLDs") no pongo el atributo mensaje, me sale el mensaje por defecto, que es el que pusimos en la clase SimpleTag.java, en mi caso "Hola bola Tag!!!". Igual ocurre con el color, que en la clase tengo por defecto el color negro, por lo que si omito el atributo color a la etiqueta, en vez del color que pongamos en la etiqueta, aparecerá el color por defecto.
Ahora arrancamos el servidor jetty ejecutamos en la barra de direcciones del navegador la direccion http://localhost:8080/ y vemos que nos sale el texto "discografica con TLDs" en rojo.
-------------------
Ahora vamos a crear otra etiqueta dentro del simple.tld, para lo cual tenemos que crear otra clase (ImgTag.java). Luego en simple.tld, creamos otra etiqueta 'tag' de nombre 'imgTag'. Ya en el archivo jsp, creamos otra etiqueta, en este caso etiqueta imgTag: --ex:imgTag url="http://www.....jpg"--
-------------------
Para poder utilizar librerías estandars (incluídas en la especificación de JSP) vamos a incluir una nueva dependencia en pom.xml: el 'taglibs standard' version 1.1.2.
Estas librerías estandars son:
- core: para iteraciones, condicionales, manipulación de URLs y otras funciones generales.
- xml: para la manipulación de XML y para XML-Transformation.
- sql: para gestionar conexiones a bases de datos.
- i18n: para la internacionalización y formateo de las cadenas de caracteres como cifras.
- fn:
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
Para ver ejemplos relacionados con la librería 'core', pincha en el ejemplo index.jsp.
Enlaces de interés: Librerías de etiquetas, JSTL
No hay comentarios:
Publicar un comentario