Einführung
Angepasste Tags sind ein Verfahren zum Erweitern der JSP API. Mit Ihrer Hilfe können deklarative Erweiterungen von
JSP-Seiten realisiert werden. Die JSP-Tags sind in Java implementiert, werden aber in JSP über Tags ähnlich wie
HTML-Tags aktiviert. Anders als HTML-Tags werden JSP-Tags jedoch vom Server und nicht vom Clientbrowser verarbeitet.
Angepasste Tags ermöglichen eine klare Trennung der Zuständigkeiten von Webdesignern (JSP-Entwicklern) und
Java-Programmierern. Die Java-Programmierer implementieren angepasste JSP-Tags. Die Webdesigner wählen diese Tags
deklarativ aus, um die Java-Implementierung zu aktivieren.
Der JSP-Designer ruft den Java-Code auf, indem er Tags deklariert, und der Java-Entwickler entwickelt Code in
Tag-Handlern. Siehe hierzu das folgende Diagramm.
Der Java-Entwickler muss zwei Dinge bereitstellen, um angepasste Tags zu definieren:
Tag-Handler
Ein Tag-Handler ist eine Klasse, die die Schnittstelle Tag implementiert. Zwei Bibliotheksklassen vereinfachen
die Bereitstellung von Tag-Handlern. Dabei handelt es sich um die Klassen javax.servlet.jsp.TagSupport und
javax.servlet.jsp.BodyTagSupport. Die Klasse TagSupport wird für Tags ohne Hauptteil verwendet, und die
Klasse BodyTagSupport für Tags mit einem Hauptteil.
Nachfolgend ist ein Beispiel für die einfachste Tag-Handler-Implementierung aufgeführt, die möglich ist.
Tag-Bibliothek-Deskriptor
Damit eine JSP die angepassten JSP-Tags verwenden kann, muss ein Tag-Bibliothek-Deskriptor erstellt werden. Ein
Tag-Bibliothek-Deskriptor ist eine XML-Datei, die zusammen mit den Tag-Handlern auf dem Webserver implementiert wird.
Nachfolgend ist eine einfache Tag-Bibliotheksdatei aufgeführt, die den Tag-Bibliothek-Deskriptor HelloWorld enthält.
<?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>Einfaches Beispiel eines angepassten JSP-Tags</description>
<tag>
<name>hello</name>
<tag-class>com.inferdata.taglib.HelloWorld</tag-class>
<body-content>empty</body-content>
<description>Einfaches "hello world"-Tag</description>
</tag>
</taglib>
|