Introduction
Les balises personnalisées sont un mécanisme d'extension d'API JSP. Elles permettent d'obtenir des extensions
déclaratives de pages JSP. Les balises JSP sont implémentées dans Java, mais elles sont activées dans JSP via
l'utilisation de balises identiques à des balises HTML. Mais contrairement aux balises HTML, les balises JSP sont
traitées par le serveur et non par le navigateur du client.
Les balises personnalisées offrent une séparation nette des responsabilités entre les concepteurs Web (développeurs
JSP) et les programmeurs Java. Les programmeurs Java mettent en oeuvre les balises personnalisées JSP. Les concepteurs
Web sélectionnent ces balises de façon déclarative afin d'activer l'implémentation Java.
Le concepteur JSP appelle le code Java en déclarant les balises et le développeur Java développe le code dans les
gestionnaires de balises, comme l'illustre le diagramme suivant.
Pour pouvoir présenter une balise personnalisée, le développeur Java doit fournir deux éléments :
Gestionnaire de balises
Un gestionnaire de balises représente une classe qui implémente l'interface de balises. Deux classes de
bibliothèques facilitent cette mise à disposition de gestionnaires de balises. Ces deux classes sont
javax.servlet.jsp.TagSupport et javax.servlet.jsp.BodyTagSupport. La classe TagSupport est
utilisée pour les balises qui ne contiennent pas de corps ; BodyTagSupport est utilisée pour celles qui en
contiennent un.
Voici l'exemple d'une implémentation de gestionnaire de balises la plus simple possible.
Descripteur de bibliothèque de balises
Pour qu'un JSP soit capable d'utiliser les balises personnalisées JSP, un descripteur de bibliothèque de balises doit
être créé. Un descripteur de bibliothèque de balises est un fichier XML déployé sur le serveur Web avec les
gestionnaires de balises.
Voici un exemple de fichier de bibliothèque de balises contenant le descripteur de bibliothèque de balises 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>Simple example of a JSP custom tag</description>
<tag>
<name>hello</name>
<tag-class>com.inferdata.taglib.HelloWorld</tag-class>
<body-content>empty</body-content>
<description>Simple hello world tag</description>
</tag>
</taglib>
|