JEE
Ing. Luis García
[email protected]
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> •Presenta Contenido <x:CustomAction> Body
content
Laboratorio Programación II
Partes de una Etiqueta Nombre
de la etiqueta)
(donde “logo” es el nombre
Atributos
Contenido (body) Este es el contenido de la etiqueta logo.
Partes de una Etiqueta Ejemplo de Uso: <jsp:useBean id="usu" class="com.BeanUsuario"> <jsp:setProperty name="usu" property="*"/>
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”
NOMBRE UBICACION
Resumen de Tag Library • • • •
Escribir un Tag (Clase Java). Registrar el Tag en un Tag Library (xml tld) Habilitar el Tag Library en la webapp (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 …