Sie sind auf Seite 1von 23

JEE

Ing. Luis García lgarcia2@usmp.edu.pe


Custom
Tags
TagLibs

Introducción

TagLibs

Ventajas

Constantes y métodos de los Tags

Tag Library Descriptor


Introducción

Separación de roles: Presentación.

Expande la funcionalidad de las JSP.

Con las JSP aún se escribe código mezclado


con el HTML. Existen páginas en las cuales el
código java, es excesivo para la
presentación, y hacen difícil su
mantenimiento.

Solución: Etiquetas que encapsulen la


funcionalidad.
¿Qué es un TagLib?
Es un conjunto de etiquetas que encapsulan
cierta funcionalidad. Generalmente esta
funcionalidad es de presentación, pero
también puede ser de lógica de negocio.

Un taglib define una librería de etiquetas. Es


así como uno mismo puede desarrollar sus
propias etiquetas personales.

El uso de etiquetas se ha convertido en un


standard y muchas herramientas actuales
están orientadas a su uso.
Partes de una Etiqueta
Se ejecutan al llamar a un JSP, donde hayan sido declarados.
Tipos de Declaración:
•Una sola instrucción
<x:CustomAction />
•Instrucción de abrir y cerrar
<x:CustomAction></x:CustomAction>
•Presenta Contenido
<x:CustomAction>
Body content
</x:CustomAction>
Laboratorio Programación II
Partes de una Etiqueta
Nombre
 <logo> (donde “logo” es el nombre
de la etiqueta)

Atributos
 <logo width=“100” height=“50”>

Contenido (body)
<logo>
Este es el contenido de la etiqueta logo.
</logo>
Partes de una Etiqueta

Ejemplo de Uso:
<jsp:useBean id="usu" class="com.BeanUsuario">
<jsp:setProperty name="usu" property="*"/>
</jsp:useBean>

Laboratorio Programación II
Ventajas del uso de TagLibs

Las etiquetas personalizadas nos permiten encapsular


codigo java, de manera que su uso sea tranparente
desde un archivo JSP.

Ejm: <prefijo:nombre />

Laboratorio Programación II
Ventajas del uso de
TagLibs
Pueden estar asociados a parámetros y
atributos que define su propio comportamiento
en runtime.
El tag podrá accesar al contenido de pagina y
escribir sobre ella.
La reutilización, que permite desarrollar
librerías y distribuirlas, existen tags genéricos
tales como “jstl”.
Mejora el mantenimiento para el diseñador y
programador.
Elimina el código de las páginas jsp, en
general, separa la presentación del código
“realmente”.
La Interfaz Tag
Dentro del paquete:
javax.servlet.jsp.tagext

Define una interacción entre el Jsp


Engine y el tag handler.
Controla el ciclo de vida y los
métodos que van ha ser invocados
desde el inicio hasta el final del Tag.
Custom Tags

Laboratorio Programación II
Métodos

void setPageContext(PageContext
pc)
void setParent( Tag t)
int doStartTag( )
Se proceso al inicio del Tag.
int doEndTag( )
Se procesa al final del Tag.
Tag getParent( )
void release( )
Métodos

Creando una etiqueta personalizada

public class TagSimple extends TagSupport {


public int doStartTag() { // instrucciones }
public int doEndTag() { // instrucciones }
}

Laboratorio Programación II
Constantes
EVAL_BODY_INCLUDE
Evalua el cuerpo o contenido de la
etiqueta.
EVAL_PAGE
Continua evaluando la página.
SKIP_BODY
     Salta el cuerpo (contenido de la
etiqueta).
SKIP_PAGE
      Salta al resto de la página.
Constantes

Creando una etiqueta personalizada


•public int doStartTag()puede retornar
SKIP_BODY
EVAL_BODY_INCLUDE
•public int doEndTag() puede retornar
EVAL_PAGE

No es necesario implementar ambos métodos. A veces basta con uno solo,


según se requiera.

Laboratorio Programación II
Custom Tags

Laboratorio Programación II
Tag Library Descriptor
TLD es un documento XML con extensión
.tld

Describe uno o mas tags customizados,


indicando sus atributos si tuvieran.

También se definen las clases con las que


están relacionados.
Tag Library Descriptor

Dentro del archivo web.xml ubicar los


datos del “.tld”

<taglib>
<taglib-uri>NOMBRE</taglib-
uri>
<taglib-location>
UBICACION
</taglib-location>
</taglib>
Resumen de Tag Library
• Escribir un Tag
(Clase Java).
• Registrar el Tag en
un Tag Library (xml
tld)
• Habilitar el Tag
Library en la web-
app (modificar xml)
• Usar el Tag Library
(en un jsp)
Custom Tags

Importante

Cuando necesitemos un tag para iterar sobre una colección


Debemos usar un método mas, que se encargara de la iteración:

public class Clase extends TagSupport {


public int doStartTag() throws JspTagException { // instrucciones }
public int doAfterBody() throws JspTagException { // instrucciones}
public int doEndTag() throws JspTagException { // instrucciones}
}

Laboratorio Programación II
Custom Tags

Laboratorio Programación II
Siguiente paso

Construir nuestros propios tags o


utilizar tags existentes …

Das könnte Ihnen auch gefallen