Avant de nous intéresser à l'implémentation Java d'un gestionnaire de balise, voyons tout d'abord comment le conteneur JSP opère pour mettre en relation les actions personnalisées avec leur gestionnaire de balise pendant la translation d'une page JSP en servlet JSP. Pour ce faire, le conteneur JSP a besoin d'un descripteur de bibliothèque de balises (TLD pour Tag Library Descriptor) afin d'associer le préfixe à la bibliothèque correspondante, d'associer l'action au gestionnaire correspondant, de vérifier que les attributs requis sont présents.
Cette bibliothèque de balises est un fichier écrit au format XML dont une instance réside dans le répertoire /WEB-INF/tlds/ et une autre instance est déployé avec le fichier JAR dans le répertoire meta-inf/.
Toute page JSP utilisant des actions personnalisée doit commencer par la directive taglib pour indiquer au conteneur JSP le descripteur de bibliothèque à utiliser dont la syntaxe est la suivante : <%@ taglib uri="/WEB-INF/tlds/mytaglib.tlds" prefix="myPrefix" %>
Un fichier TLD est un fichier texte dont l'extension est .tld, il commence par une déclaration XML standard et une déclaration DOCTYPE spécifiant la DTD (Document Type Definition) qui est un ensemble de règles pour l'interprétation des éléments dans le fichier 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>bs</shortname>
<uri>/BSTagLib</uri>
<info>A library for Brahim Santarossa's Actions</info>
<tag>
<name>Adder</name>
<tagclass>com.BSHome.jsp.tags.tagAdder</tagclass>
<bodycontent>empty</bodycontent>
<info>Add two operands</info>
<attribute>
<name>operand_1</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
…
</tag>
…
</tgalib>
|