JSP - Crear Etiquetas personalizadas
JSP Tags actúa como un complemento a las páginas JSP. Estas son básicamente las clases Java que se ejecutan cuando la página jsp obtener prestados por el servidor y el navegador. JSP viene con etiquetas como en la construcción de jsp: include, jsp: hacia delante, pero no son suficientes para abastecer al mundo Web. Para superar este problema se puede diseñar etiquetas basadas en sus necesidades de negocio. Este artículo te guiará cómo podemos crear una etiquetas personalizadas para JSP.
JSP Custom Tags:
Todas las etiquetas JSP Tag implementa la interfaz. Para saber más información sobre la etiqueta se refieren a la interfaz JSP Custom Tag interfaz. Pero no utilizan directamente la etiqueta en lugar de interfaz que usamos TagSupport y BodyTagSupport, esto es debido a que algunos implementación por defecto de etiqueta de interfaz ya se ha implementado en TagSupport y BodyTagSupport por lo que resulta más fácil escribir código de etiqueta personalizada.
Diferencia entre TagSupport y BodyTagSupport:
En TagSupport que definir todos los atributos necesarios para mostrar los datos en donde como en BodyTagSupport pasamos atributos y contenido del cuerpo a la etiqueta de JSP. BodyTagSupport no se utiliza con frecuencia a menos que quiera manipular el contenido del cuerpo. Pasando a los atributos de las etiquetas personalizadas no es obligatoria.
Ejemplo de TagSupport:
<Test :showTime /> Ejemplo de BodyTagSupport:
<Test :showTime> Hora actual: </ test>
Si usted ve en BodyTagSupport pasamos algunos contenidos del cuerpo a la etiqueta XML. Aunque el contenido del cuerpo no es obligatorio, pero se degrade el rendimiento si no se está utilizando el cuerpo de su etiqueta personalizada, y no está utilizando TagSupport.
Llame función importante en JSP Custom Tag Code:
doStartTag ():
Esta función recibe llamadas cuando son inicializadas la etiqueta de JSP. Esta función de un valor entero que ya se define en la etiqueta de interfaz en forma de nombre de variable. Normalmente retorno SKIP_BODY. SKIP_BODY le dice al motor de JSP para pasar el cuerpo de la etiqueta de JSP.
doEndTag ():
Esta función recibe una llamada justo después doStartTag () la función de transformación que se hace. Similar a doStartTag () Esta función devuelve un valor entero. Normalmente volvemos EVAL_BODY. EVAL_BODY le dice al motor de JSP para procesar el código JSP restantes.
Simple Custom Tag Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ; com.hiteshagrawal paquete; ; import java.io. *; ; javax.servlet.jsp importación .*; ; javax.servlet.jsp.tagext.TagSupport de importación; TagSupport { public class prueba TagSupport ( doStartTag ( ) throws JspException { doStartTag public int () throws JspException ( try ( ( ) ; JspWriter out = pageContext. GetOut (); "This is my first tag!" ) ; a cabo. print ( "Este es mi primer tag"); ( IOException ioe ) { ) Catch (IOException e) ( ; . ioe printStackTrace (); "IOException while writing data to page" + ioe. getMessage ( ) ) ; lanzar JspException nuevo ( "IOException, mientras que la escritura de datos a la página" + OIE. getMessage ()); ) SKIP_BODY retorno; ) doEndTag ( ) throws JspException { doEndTag public int () throws JspException ( EVAL_PAGE retorno; ) ) |
Explicación del código:
- Class amplía TagSupport que indica que no estamos utilizando la clase BodyTagSupport.
- doStartTag () Función escribe un contenido String utilizando pageContext.getOut (), esta forma el resultado que obtendrá por escrito en la página JSP.
- doStartTag () devuelve SKIP_BODY. El valor de esta variable ya está definido en la interfaz Tag.
- doEndTag () devuelve EVAL_PAGE. El valor de esta variable ya está definido en la interfaz Tag.
La aplicación de etiquetas JSP del código de Java en JSP:
Ahora, nuestro siguiente paso sería crear una biblioteca de etiquetas Descriptor (TLD) de archivo. Este archivo indica al motor de JSP sobre las etiquetas personalizadas JSP que se acostumbra en el código JSP.
= "ISO-8859-1" ?> <? Xml version = "1.0" encoding = "ISO-8859-1"?> <! DOCTYPE taglib PUBLIC "- / / Sun Microsystems, Inc. / / DTD JSP Tag Library 1.2 / / EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> 1.0 </tlib > -version <tlib> 1,0 </ tlib> 1.2 </jsp > -version <jsp> 1.2 </ jsp> test </short > -name <short> test </ short> <tag> <nombre> TestingTag </ name> <tagclass> com.hiteshagrawal.Test </ tagclass> <bodycontent> vacío </ bodycontent> </ etiqueta> </ taglib>
Si ves que se ha definido un TLD de archivo para el código JSP anteriormente escrito. Una página JSP Tag debe ser escrito dentro de "etiqueta" de elementos. Permítanme explaing el archivo XML escrito:
- tlib versión - Como el nombre sugiere, se refiere a la versión de la biblioteca de etiquetas
- jsp-version - Se refiere a la versión que está utilizando JSP
- nombre corto - Se refiere al nombre de la etiqueta JSP que el código JSP se refiere a la
- nombre - Se refiere al nombre de las etiquetas personalizadas
- tagclass - Refersn a la estructura de clases utilizada para su Etiquetas JSP
- bodycontent - Esto se usa en caso de que estemos utilizando BodyTagSupport, en TagSupport mantenemos esta vacío
Guardar este archivo por nombre TLD test.tld dentro de su carpeta WEB-INF.
Referencia TLD archivo en JSP Page:
Hay múltiples maneras de refererence TLD archivo en JSP, y estoy hablando de una de ellas en este artículo.
Implementar JSP JSP Etiquetas:
"test" uri = "/WEB-INF/test.tld" %> <% @ Taglib prefix = "test" uri = "/ WEB-INF/test.tld"%> <Html> <Head> JSP Custom Tag Demo </ title > <Title> JSP Custom Tag Demo </ title> </ Head> <Body> TestingTag /> <Prueba: TestingTag /> </ Body> </ Html>
JSP Explicación del código:
Si ves que estoy haciendo referencia a la taglib que se llamará por su nombre "prueba". También estoy pasando la ruta del archivo TLD estará refiriendo.
Por último, me llamo la etiqueta personalizada como se muestra en la línea n º: 7
Salida JSP:
Cuando se ejecuta el código anterior JSP obtenemos el siguiente resultado.
Esta es mi primera etiqueta! 
















En realidad, la forma más fácil de ponerlos en práctica es el uso de archivos de etiqueta. IWebMvc hace uso intensivo de las etiquetas, ambos creados a partir de archivos y / o clases. Echa un vistazo si los interesados en el mundo de algunos de "verdaderos" ejemplos.
Ver Suite también Coldtags: http://www.servletsuite.com/jsp.htm
Se trata de un mayor conjunto de etiquetas JSP personalizadas a través de Internet.
Buen tutorial.
Buen tutorial, fácil de entender. Gracias por el mismo.