Inicio > Java JSP> - Crear etiquetas personalizadas

JSP - Crear etiquetas personalizadas

Etiquetas JSP actúa como un plugin a sus páginas JSP. Estas son básicamente las clases de 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: adelante, pero no son suficientes para cubrir al mundo Web. Para superar este problema, puede diseñar etiquetas basadas en sus necesidades de negocio. Este artículo le guía de cómo podemos crear una etiqueta personalizada para JSP.

Etiquetas personalizadas JSP:
Todas las Etiquetas JSP Tag implementa la interfaz. Para saber más información sobre etiquetas se refieren a la interfaz JSP Tag interfaz . Pero no utilizan directamente la etiqueta de interfaz en su lugar utilizamos TagSupport y BodyTagSupport, esto es debido a que algunos implementación predeterminada de Etiqueta interfaz ya está implementado en TagSupport y BodyTagSupport así es más fácil escribir código etiqueta personalizada.

Diferencia entre TagSupport y BodyTagSupport:
En TagSupport que definir todos los atributos necesarios para mostrar los datos mientras que en BodyTagSupport pasamos atributos y contenido del cuerpo de la etiqueta de JSP. BodyTagSupport no se utiliza con frecuencia a menos que desee 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
 El tiempo actual:
 </ Test> 

Tu correo electrónico:


Si usted ve en BodyTagSupport pasamos algunos contenidos del cuerpo a la etiqueta XML. Aunque el contenido del cuerpo no es obligatoria pero se degradará el rendimiento si no que usar el cuerpo para su etiqueta personalizada y usted no está utilizando TagSupport.

Importante Función de llamada personalizados en el Código Tag JSP:
doStartTag ():
Esta función se llama cuando recibe la etiqueta jsp obtener inicializado. Esta función un valor entero que ya se define en la etiqueta de interfaz en forma de nombre de la variable. Por lo general SKIP_BODY retorno. SKIP_BODY le dice al motor JSP para omitir el cuerpo de la etiqueta jsp.

doEndTag ():
Esta función recibe llamada justo después de doStartTag () la función de transformación se lleva a cabo. Al igual que doStartTag () Esta función devuelve un valor entero. Normalmente volvemos EVAL_BODY. EVAL_BODY le dice al motor JSP para procesar el código de jsp restantes.

Simple Código etiquetas personalizadas:

  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;

 ; importación java.io. *;
 ; importación javax.servlet.jsp .*;
 ; javax.servlet.jsp.tagext.TagSupport importación;

 TagSupport { public class Prueba (extiende TagSupport
    doStartTag ( ) throws JspException { pública doStartTag 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 ioe) (
      	  ; ioe. printStackTrace ();
          "IOException while writing data to page" + ioe. getMessage ( ) ) ; lanzar nuevos JspException ("IOException al escribir los datos a la página" + ioe. getMessage ());
       )
       SKIP_BODY retorno;
    )

    doEndTag ( ) throws JspException { pública doEndTag int () throws JspException (
      EVAL_PAGE retorno;
    )
 ) 

Explicación del código:

  • Clase extiende TagSupport que indica que no estamos utilizando la clase BodyTagSupport.
  • doStartTag () Función escribe una cadena utilizando el contenido pageContext.getOut (), esta forma parte de la producción que se escriben en la página jsp.
  • doStartTag () devuelve la función SKIP_BODY. El valor de esta variable ya está definido en la interfaz Tag.
  • doEndTag () devuelve la función EVAL_PAGE. El valor de esta variable ya está definido en la interfaz Tag.

Aplicación de etiquetas JSP Java en código JSP:
Ahora nuestro próximo paso sería la creación de una etiqueta del descriptor de Bibliotecas (TLD) de archivos. Este archivo indica al motor de JSP sobre la etiqueta JSP personalizada que se acostumbra en el interior del 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 > <short -name prueba <> /> corto

	 <etiqueta>
		 <nombre> TestingTag </ name>
    		 <tagclass> com.hiteshagrawal.Test </> tagclass
    		 > <bodycontent Vacío </> bodycontent
	 </ Etiqueta>
 </> Taglib 

Si veis que yo tengo definido un dominio de primer nivel de archivo para el anterior código JSP escrito. Sea una página JSP Tag debe ser por escrito dentro de "etiquetar" los elementos. Permítanme resaltando la escrita archivo xml:

  • 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
  • corto nombre - Hace referencia al nombre de la etiqueta personalizada que su código JSP jsp voy a referir a
  • nombre - Se refiere al nombre de las etiquetas personalizadas
  • tagclass - Refersn a la estructura de clases usado para su Etiquetas JSP
  • bodycontent - Esto se usa en caso de que estemos usando BodyTagSupport, en TagSupport mantenemos esta vacía

Guardar este archivo TLD por su nombre test.tld dentro de la carpeta WEB-INF.

Referencia del dominio de primer nivel de archivo en la página JSP:
Hay múltiples maneras de refererence TLD archivo en JSP y estoy hablando de una de ellas en este artículo.

JSP de ejecución etiquetas JSP personalizadas:

 "test" uri = "/WEB-INF/test.tld" %> < html > < head > < title > JSP Custom Tag Demo </ title > </ head > < body > < test : TestingTag /> </ body > </ html > <% @ Taglib prefijo = "prueba" uri = "/ WEB-INF/test.tld"%> <html> <head> <title> JSP Tag Demo </ title> </ head> <body> <prueba: TestingTag /> </ body> </ html> 

JSP Explicación 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 que se refiere.
Finalmente estoy llamando a la etiqueta personalizada como se muestra en línea no: 7

JSP de salida:
Cuando ejecutamos el anterior código JSP se obtiene la siguiente salida.

  Esta es mi primera etiqueta! 


Búsqueda personalizada

Artículos populares:

Compartir y Disfrutar:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • IndianPad
  • LinkedIn
  • Live
  • MySpace
  • Netvibes
  • RSS
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Reddit
  • Add to favorites
  • PDF
  • Twitter
Tags: Categorías: Java Etiquetas:
  1. 28 de diciembre 2008 a las 12:04 | # 1

    En realidad, la forma más fácil de implementar es usar archivos de etiquetas. IWebMvc hace un uso intensivo de las etiquetas, tanto creado a partir de archivos y / o clases. Echa un vistazo si están interesados en un mundo "real" ejemplos.

  2. 29 de diciembre 2008 el 00:21 | # 2

    Véase también Coldtags suite: http://www.servletsuite.com/jsp.htm
    Se trata de un mayor conjunto de etiquetas JSP personalizadas en la red.

  3. 17 de enero 2009 a las 03:23 | # 3

    Un buen tutorial.

  4. Yuva
    06 de mayo 2009 a las 22:24 | # 4

    Niza fácil tutorial, para entender. Gracias por la misma.

  1. 27 de marzo 2010 a las 08:30 | # 1