cuerpo < /prefijo : tagName >
La etiqueta personalizada más básica , llamada una etiqueta simple, no tiene cuerpo y no requiere de atributos. Una etiqueta personalizada que contiene un cuerpo se denomina etiqueta body . Las etiquetas personalizadas se pueden anidar. Los valores de atributo se pueden establecer utilizando expresiones JSP. Hay dos componentes básicos que se construye para crear una etiqueta personalizada : el archivo descriptor de biblioteca de etiquetas y el controlador de clase Java tag . Estos componentes están registrados en el contenedor de servlets en el archivo web.xml de la aplicación.
Cree el Tag Library Descriptor del archivo
El archivo descriptor de biblioteca de etiquetas ( TLD ) es una archivo XML que contiene los metadatos de definir sus etiquetas personalizadas. Por ejemplo , el archivo TLD siguiente se define una etiqueta simple denominada " myTag " con un atributo " maxValue , " y ningún cuerpo . Se requiere el atributo maxValue , y el valor se puede ajustar con una expresión de tiempo de ejecución (establecida por el elemento rtexprvalue ), que debe devolver un entero .
Xml version = encoding " 1.0 " = "ISO- 8859-1 "> < DOCTYPE taglib PÚBLICO ?" - //Sun Microsystems, Inc. //DTD JSP TagLibrary 1.2 //EN " etiqueta etiqueta con un
Cree la etiqueta de controlador
Cada etiqueta personalizada tiene un controlador de etiqueta que establece y obtiene sus atributos, procesos del cuerpo, y ejecuta la acción. Un controlador de etiqueta es una clase Java que implementa javax.servlet.jsp.tagext.Tag o , mejor aún , se extiende una subclase de Tag . Clases de controlador de etiquetas tienen acceso a los mismos objetos implícitos como las páginas JSP , como la petición , respuesta y sesión.
Crear una simple clase de controlador de etiquetas mediante la ampliación javax.servlet.jsp.tagext.TagSupport . Implementar el doStartTag , doEndTag y métodos de liberación . El doStartTag se ejecuta cuando se encuentra la etiqueta de inicio , y realiza la acción principal de la etiqueta , como la realización de cálculos y la impresión de los resultados.
DoStartTag public int ( ) throws JspException { try { ... su código ... } catch ( Exception ex ) {... manejo de errores ... } return SKIP_BODY ;}
El método doEndTag se ejecuta cuando se encuentra la etiqueta de cierre . Volver EVAL_PAGE si el resto de la página JSP se va a evaluar . El método de liberación debe limpiar y liberar los recursos utilizados por la clase de controlador de etiquetas .
Si su etiqueta personalizada tiene atributos , incluir una variable miembro y aplicar conjunto y obtener los métodos para cada atributo. Si no se requiere el atributo , establezca un valor predeterminado. Para el atributo maxValue requerida :
private int maxValue ;
setMaxValue public void (int val) { maxValue = val; } public int getMaxValue () {return maxValue ;}
< p > controladores de etiquetas corporales que no interactúan con el cuerpo de la etiqueta de contenido extend javax.servlet.jsp.tagext.TagSupport . Poner en práctica los mismos métodos que para una simple etiqueta . También implementar el método doAfterBody para analizar y utilizar el contenido del cuerpo . Para controladores de etiquetas del cuerpo que necesitan interactuar con el contenido del cuerpo de la etiqueta , se extienden javax.servlet.jsp.tagext.BodyTagSupport y tanto el doInitBody y métodos doAfterBody .
Actualización web.xml
< br >
Una vez creado el archivo TLD y la clase de controlador de etiquetas , editar el archivo web.xml para registrar su nueva biblioteca de etiquetas con el contenedor de servlets . Añadir una sección taglib al final antes de la etiqueta de cierre
Utilice sus etiquetas personalizadas
En el archivo JSP que utilice las etiquetas personalizadas , utilice la directiva taglib para indicar la biblioteca de etiquetas que va a utilizar y el prefijo que utilizará para hacer referencia a la biblioteca. Puede referirse a su uri biblioteca mediante la ruta:
<% @ taglib uri = prefijo " /WEB-INF/exampletaglib.tld " = " por ejemplo," %>
o el nombre que usted proporcionó en web.xml como taglib -uri :
<% @ taglib uri = prefijo " mytags " = " por ejemplo," %>
Utilice su etiqueta personalizada en el JSP donde desea que la acción ocurra, utilizando el prefijo que ya ha proporcionado a la directiva taglib :