
















































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Estructuras de datos, Estructuras de datos, Estructuras de datos,
Tipo: Diapositivas
Subido el 22/10/2020
5
(1)1 documento
1 / 56
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!

















































Dr. Diego Lz. de Ipiña Gz. de Artaza http://paginaspersonales.deusto.es/dipina http://paginaspersonales.deusto.es/dipina/cursos/J2EECesine. zip [email protected]
(^) Sin embargo, sólo 3 elementos acción en JSP se pueden usar para acceder a un bean: (^) jsp:useBean (^) jsp:getProperty (^) jsp:setProperty (^) Por tanto a menudo tenemos que incluir código en un JSP (^) JSP (1.1 en adelante) define custom tags que pueden ser usadas para definir acciones propietarias, de manera que en nuestro JSP únicamente tenemos código de marcado
Los siguientes 6 pasos han de seguirse (bajo subdirectorio EjemploCustomTag de webapps)
Fichero XML que define una librería de tags y sus etiquetas. Consta de: Prólogo XML como todo documento XML El elemento raíz
(^) Puede tener los siguientes sub-elementos (name and tag-class son los únicos obligatorios): (^) name identificador de la etiqueta (^) tag-class nombre de la clase completo que realiza el procesamiento de esta etiqueta (^) tei-class clase de ayuda de esta etiqueta (^) body-content el tipo de cuerpo de una etiqueta: (^) empty no hay cuerpo (^) JSP cuerpo es un conjunto de elementos (^) tagdependent cuerpo debe ser interpretado por la etiqueta (^) description (^) attribute: cero o más atributos que puede tener tres subelementos: (^) name (obligatorio) (^) required: true o false (valor por defecto false) (^) rtexprvalue: determina si el valor de este atributo se puede determinar en tiempo de ejecución (^) …
(^) Paquete javax.servlet.jsp.tagext Un manejador de etiquetas (Tag Handler) es una clase que está ligada a una etiqueta personalizada y es invocada cada vez que el contenedor de JSPs encuentra la etiqueta. En JSP 1.2, la clase javax.servlet.jsp.tagext tiene 4 interfaces y 12 clases (^) Los dos interfaces más importantes son Tag y BodyTag (^) Estos interfaces dictan el ciclo de vida de un manejador de etiquetas
Un manejador de etiquetas tiene acceso a un API a través del cual se puede comunicar con una página JSP. El punto de entrada a la API es el objeto javax.servlet.jsp.PageContext, a través del cual el TagHandler puede recuperar todos los otros objetos implícitos (request, session, and application) accesibles desde una página JSP. (^) Los objetos implícitos pueden tener atributos con nombre asociados con ellos. Tales atributos son accesibles usando métodos [set|get]Attribute. Si la etiqueta está anidada, un Tag Handler también tiene acceso al Tag Handler (llamado parent ) de la etiqueta padre. (^) Un conjunto de clases Tag Handler relacionadas constituyen una tag library y son empaquetadas como un fichero JAR.
Obtiene una instancia del pool de TagHandlers o crea uno nuevo. Después llama a setPageContext que representa a la página donde se encontró la custom tag.
(^) El contenedor de JSP llama a setParent, pasándole el objeto Tag que representa a la etiqueta padre de la etiqueta procesada (^) public void setParent(Tag parent) (^) El contenedor de JSP asigna todos los atributos de la etiqueta, usando métodos getter y setter como en JavaBeas. Si se encuentra un atributo temperatura llamará a setTemperatura. (^) El contenedor llama a doStartTag, que puede devolver Tag.SKIP_BODY (el contenedor no debe procesar el cuerpo de la etiqueta) o Tag.EVAL_BODY_INCLUDE (el contenido del cuerpo deberá ser procesado) (^) public int doStartTag() throws javax.servlet.jsp.JspException
package es.deusto.customtags.example2; import javax.servlet.jsp.; import javax.servlet.jsp.tagext.; public class DoublerTag implements Tag { private int number; private PageContext pageContext; public void setNumber(int number) { this.number = number; } public void setParent(Tag t) { } public void setPageContext(PageContext p) { pageContext = p; } public void release() { } public Tag getParent() { return null; } public int doStartTag() { try { JspWriter out = pageContext.getOut(); out.println("Double of " + number + " is " + (2 * number)); } catch (Exception e) { } return EVAL_BODY_INCLUDE; } public int doEndTag() throws JspException { return EVAL_PAGE; } }