Introducción
Los códigos personalizados son el mecanismo para ampliar la API de JSP. Los códigos personalizados permiten
ampliaciones mediante declaraciones de páginas JSP. Los códigos JSP se implementan en Java, pero se activan en las JSP
mediante códigos similares a los códigos HTML. Sin embargo, a diferencia de los códigos HTML, los códigos JSP los
procesa el servidor y no el navegador del cliente.
Los códigos personalizados proporcionan una clara separación de responsabilidades entre los diseñadores web
(desarrolladores de JSP) y los programadores de Java. Los programadores de Java son los encargados de implementar
códigos JSP personalizados. Los diseñadores seleccionan estos códigos mediante declaraciones para activar la
implementación Java.
El diseñador de JSP "invoca" al código Java declarando códigos y el desarrollador de Java desarrolla el código en
manejadores de códigos, tal como se muestra en el siguiente diagrama.
Para proporcionar un código personalizado, el desarrollador de Java tiene que proporcionar dos elementos:
Manejador de códigos
Un manejador de códigos es una clase que implementa la interfaz Tag. Dos clases de bibliotecas permiten
proporcionar manejadores de códigos. Las dos clases son javax.servlet.jsp.TagSupport y
javax.servlet.jsp.BodyTagSupport. La clase TagSupport se utiliza para códigos que no tienen cuerpo,
mientras que BodyTagSupport se utiliza para códigos con un cuerpo.
A continuación se presenta un ejemplo de una implementación de un manejador de códigos lo más simple posible.
Descriptor de biblioteca de códigos
Para que una JSP pueda utilizar códigos personalizados JSP, hay que crear un descriptor de biblioteca de códigos. Un
descriptor de biblioteca de códigos es un archivo XML que se despliega en el servidor web junto con los manejadores de
códigos.
A continuación se muestra un archivo de biblioteca de códigos simple con el descriptor de biblioteca de códigos
HelloWorld.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLScheme-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>simp</short-name>
<uri> http://www.inferdata.com/taglib/hello-world</uri>
<description>Ejemplo simple de un código JSP personalizado</description>
<tag>
<name>hello</name>
<tag-class>com.inferdata.taglib.HelloWorld</tag-class>
<body-content>empty</body-content>
<description>Código hello world simple</description>
</tag>
</taglib>
|