JTagua

Inicio » JSP/SERVLETS » Directivas » @taglib » Tutorial de JSP (9) – Directiva @taglib

Tutorial de JSP (9) – Directiva @taglib

Licencia

Creative Commons License

Visitas:

  • 792.440 hits
Anuncios

La directiva taglib indica al motor jsp que la página va a utilizar “tag libraries” o librerías de etiquetas . Estas librerías contienen etiquetas creadas por el propio programador con sus correspondientes atributos que encapsulan determinada funcionalidad.

La sintaxis es

<%@taglib uri=“ . . . . . ” prefix = “ . . . . . ” %>

donde

  • el atributo uri permite localizar el fichero descriptor de la librería de extensión tld.
  • el atributo prefix especifica el identificador que todas las etiquetas de la librería deben incorporar y que no puede coincidir con las palabras reservadas jsp:, jspx:, java:, javax:, servlet:, sun:, and sunw:

Como cabe esperar existe un procedimiento para crear estas librerías y que aquí no vamos a analizar, lo que si haremos es utilizar un par de ellas previamente construidas.

EJEMPLO 1:

Vamos a utilizar la librería de etiquetas strtag.jar diseñada para manejar fundamentalmente cadenas de texto. Esta librería tiene etiquetas tales como


  • Replace, Replace string
  • toUpperCase, converts body to the uppercase
  • toLowerCase, converts body to the lower case
  • Capitalize, capitalizes first char
  • Ltrim, removes a pattern from the left
  • Rtrim, removes a pattern from the right
  • Trim, removes a pattern from the left and right
  • stripTags, removes tags
  • cleanXSS, cleans XSS
  • leftPad, pads body from the left
  • rightPad, pads body from the right
  • cutString, converts body to the upper case
  • parseString, Iterates over string tokens
  • getToken, Reads current token
  • forEachLine, Iterates over lines
  • addslashes, adds slashes to the body
  • stripslashes, strips slashes in the body
  • filter, filters string according to RegExp pattern

Utilizaremos la librería de etiquetas strtag.lib con su correspondiente descriptor. (Una vez bajado el descriptor hay que renombrarlo a tablib.tld)

Vamos a hacer uso de tres de ellas, tolowerCase, parseString y getToken, para ello:

1.- Abrimos una nueva sesión del IDE de NetBeans y hacemos Archivo”, “Nuevo Proyecto”, “Java Web”, “Web Aplication” y llamamos al proyecto “protaglib1”.

2.-Desplegamos la carpeta “libraries” y comprobamos que sólo existen las librerías por defecto, es decir:

3.-Haciendo ahora con el botón derecho en Libraries, seleccionamos “Agregar archivo JAR/Carpeta” y seleccionamos el archivo strtab.jar (dependiendo de la carpeta donde la hemos descargado) y finalmente tendremos en la carpeta de librerías lo siguiente:

Vemos cómo se ha incorporado la librería strtag al grupo de librerías.

4.-Arrastramos  tablib.tld a una carpeta del proyecto, por ejemplo, a la carpeta META-INF desde el sistema operativo.

Vemos igualmente que en la carpeta META-INF se encuentra el descriptor de la librería, es decir tablib.tld. A este fichero se le denomina “descriptor” de la librería de etiquetas y siempre tiene extension “tld”. Generalmente se requiere que se encuentre en la carpeta WEB-INF del proyecto donde se utiliza (otras veces va en la carpeta META-INF del proyecto). Se trata de  un documento XML que contiene información acerca de la biblioteca en su conjunto, a la vez que informa de cada una de las etiquetas individuales.

5.-Sustituimos el index.jsp por el siguiente código

<%-- 
    Document   : index
    Created on : 26-sep-2008, 21:36:03
    Author     : Juan Tagua
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/META-INF/taglib.tld" prefix="str" %>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        Conversion a minúsculas:
        <str:toLowerCase>
            HOLA VIEJO MUNDO
        </str:toLowerCase>
        <hr>
        Búsqueda de token (muestra):
        <str:parseString source="Con diez cañones por banda,segundo.2, tercero 3,etc." separator=",">
            <br>token is: <str:getToken/>
        </str:parseString>
        <hr>
    </body>
</html>

Vemos que en la instrucción 10 se ha incorporado la librería de etiquetas strtag, en las instrucciones 19,20 y 21 se aplica al texto “HOLA VIEJO MUNDO” la etiqueta toLowerCase, en la instrucción 24 se aplica a un texto separado por comas la etiqueta parseString y finalmente en la línea 25 se aplica la etiqueta getToken. Si se ejecuta el programa se obtiene lo siguiente, Puede imaginarse fácilmente la potencia de las librerías de etiquetas y aunque aquí el ejemplo es sencillo (manejo de cadenas) existen otras librerías mas potentes. Esta peculiaridad, producir etiquetas que puedan utilizarse en el código JSP no la tienen ni PHP ni ASP, y… aquello que pueda hacer una etiqueta sólo tiene el límite de Java. Existe una larga colección de librerías de etiquetas personalizadas en este enlace.

EJEMPLO 2:

Vamos a utilizar ahora la librería de etiquetas romantag.jar diseñada para convertir números arábigos a “números romanos”. (Esta librería se encuentra en la página indicada mas arriba).

1.- Abrimos una nueva sesión del IDE de NetBeans y hacemos Archivo”, “Nuevo Proyecto”, “Java Web”, “Web Aplication” y llamamos al proyecto “taglibroman”.

2.-Desplegamos la carpeta “libraries” y comprobamos que sólo existen las librerías por defecto, es decir: 3.-Haciendo ahora con el botón derecho en Libraries, seleccionamos “Agregar archivo JAR/Carpeta” y seleccionamos el archivo romantag.jar (dependiendo de la carpeta donde la hemos descargado) y finalmente tendremos en la carpeta de librerías lo siguiente: 4.-Arrastramos ahora tablib.tld a la carpeta WEB-INF. Recuerde que hay que renombrar el descriptor de la biblioteca.

5.-Sustituimos el index.jsp por el siguiente código,

<%-- 
    Document   : index
    Created on : 13-ene-2013, 18:23:43
    Author     : Jtaguaa
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="taglib.tld" prefix="r" %> 
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Ejemplo de taglib con romantag.lib</title>
    </head>
    <body>
        <h1>El número 2010 en romano es: <r:RomanNumber>2010</r:RomanNumber> </h1>
    </body>
</html>

Vemos que en la línea 08 se ha incorporado la librería de etiquetas antes mencionada, en la instrucción 16 se aplica la etiqueta “RomanNumber” al número en arábigo 2010, y finalmente, si ejecutamos obtenemos. Es obvio, que aunque es “muy sencillo” en este caso, pero la reutilización del código nos permite adquirir cierta destreza y por tanto productividad al utilizar librerías de etiquetas ya diseñadas y probadas.
En esta ocasión el descriptor de la librería se ha incluido en la misma carpeta donde se encuentra el archivo index.jsp

Consideraciones a recordar:

  • Concepto, sintaxis y uso de la directiva taglib.
  • Agregar una librería en Netbeans.
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: