Konzept: Angepasste JSP-Tags
Diese Richtlinie enthält einen technischen Überblick über angepasste Tags, ein Verfahren zum Erweitern der JSP API.
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

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.

Im Begleittext beschriebenes 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.

Im Begleittext beschriebenes Diagramm.

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>