Escribir un Tag
Artículo por Club Developers · 20 junio 2006
2095 vistas
Ejemplo simple, un tag vacÃo (sin contenido ni atributos) que muestra simplemente la cadena "Hello World":
Explicación:
Es inútil sobrecargar doEndTag() porque su implementación por defecto devuelve Tag.EVAL_PAGE.
El descriptor de fichero completo será algo asÃ:
El hecho de especificar un bodycontent empty permite lanzar una excepción de compilación si el tag tiene algún tipo de contenido...
La página JSP puede parecerse a esto:
mostrará lo siguiente:
java
public class HelloTag extends TagSupport { Â public int doStartTag() throws JspException { Â Â Â try { Â Â Â Â Â pageContext.getOut().println ("Hello World !"); Â Â Â Â Â throw new JspException ("I/O Error", e); Â Â Â } Â Â Â return Tag.SKIP_BODY; Â } }
Explicación:
- Extendemos TagSupport para veneficiarnos de las implementaciones por defecto de los métodos de Tag.
- Sobrecargamos doStartTag(), en el que sólo escribimos la cadena "Hello World" en la salida de la página en curso (pageContext se inicializa por la implementación por defecto de setPageContext()).
- Devolvemos Tag.SKIP_BODY porque no queremos tratar los cuerpos de la etiqueta.
Es inútil sobrecargar doEndTag() porque su implementación por defecto devuelve Tag.EVAL_PAGE.
El descriptor de fichero completo será algo asÃ:
xml
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> Â <tlibversion>1.0</tlibversion> Â <jspversion>1.1</jspversion> Â <shortname>tex</shortname> Â <uri></uri> Â <info>Taglib de ejemplo</info> Â <tag> Â Â <name>hello</name> Â Â <tagclass>HelloTag</tagclass> Â Â <bodycontent>empty</bodycontent> Â </tag> </taglib>
El hecho de especificar un bodycontent empty permite lanzar una excepción de compilación si el tag tiene algún tipo de contenido...
La página JSP puede parecerse a esto:
html4strict
mostrará lo siguiente:
dos
Hello World !