17.17 Tag-Libraries
Unsere bisherigen Web-Seiten bestanden hauptsächlich aus Visualisierung, eingestreut mit Stücken von Java-Quellcode. Haben wir unsere Arbeit gut gemacht, dann haben wir ausgiebig Beans benutzt, die das Datenmodell beinhalten. Doch leider bleibt dann immer noch das Problem, dass zu viel Java-Quellcode in der JSP verbleiben kann. Das liegt auch daran, dass die Beans kein HTML erzeugen sollen, damit sie universell wiederverwendbar sind - Beans sollen mit JSPs direkt nichts zu tun haben. Erzeugen jedoch die Beans kein HTML, und die JSP soll es auch nicht machen, dann bleibt die Frage, wer denn dann HTML-Ausgaben erzeugen soll.
Die Antwort liegt in speziellen benutzerdefinierten Tags (engl. custom tag libraries), kurz Taglibs genannt. Diese Tags sind gültiges XML, so dass es mit ihnen möglich wird, eine Web-Seite ganz ohne Scriptlets zu formulieren. Ein XML-Prozessor kann eine generierte Datei mit Tags dann als korrektes XML validieren.
Der Autor der Tags definiert nach außen eine Funktionalität ähnlich der der Beans. Den Nutzer hat es nicht zu interessieren, wie die Tags implementiert sind. Mittlerweise gibt es auch eine ganze Reihe von freien Tag-Bibliotheken, etwa bei http://coldjava.hypermart.net/jsp.htm.
17.17.1 Standard Tag Library (JSTL)
Unter den vielen schon existierenden Tag-Libraries standardisiert die JSR-052 Expert Group eine Taglib unter dem Namen JSTL-Tags (http://jakarta.apache.org/taglibs/doc/standard-doc). Diese Taglib definiert eine Reihe von Tags für alle Aufgaben - daher der Name Java Standard Tag Library -, mit denen es JSP-Entwickler aufnehmen müssen. Darunter fallen
|
Kernaufgaben (Iterationen, Fallunterscheidungen) |
|
Landestypische Formatierungen |
|
XML-Verarbeitung (Parsing, Transformationen) |
|
Datenbankverbindungen |
Neben der JSTL bietet die Apache-Gruppe eine Reihe weiterer Taglibs an. Die folgende Tabelle gibt eine Kurzbeschreibung über das »Jakarta Taglibs Project«.
Taglib
|
Beschreibung
|
Application
|
Gibt Zugriff auf das ServletContext-Objekt.
|
Benchmark
|
Möglichkeiten zur Messung der Performance
|
BSF
|
Das Bean Scripting Framework (BSF) erlaubt das Einbetten von Script-Sprachen wie JavaScript, VBScript, Perl, Tcl, Python in Java.
|
Cache
|
Caching von JSP-Fragmenten
|
DateTime
|
Formatieren von Datumsausgaben, Lokalisierung, Eingabe aus HTML-Formularen
|
DBTags
|
Zugriff aus SQL-Datenbanken
|
I18N
|
Hilfe bei der Internationalisierung
|
Input
|
Repräsentiert FORM-Elemente.
|
IO
|
Ermöglicht HTTP, HTTPS, FTP, XML-RPC oder SOAP Anfragen aus der JSP, um externe Daten einzubinden.
|
JMS
|
Java Messaging Serive zum Empfangen und Senden von Nachrichten
|
JNDI
|
Erzeugt einen javax.naming.Context.
|
Log
|
Logging mit log4j in Dateien, JMS, RPC ...
|
Mailer
|
E-Mail-Versand
|
Page
|
Zugriff auf den PageContext
|
Random
|
Generiert zufällige Zeichenketten und Zahlen.
|
Regexp
|
Reguläre Ausdrücke
|
Request
|
Zugriff auf den HTTP-Request der JSP
|
Response
|
Zugriff auf den HTTP-Response
|
Scrape
|
Entnimmt Teile aus Web-Seiten und bindet sie in die eigene JSP ein.
|
Session
|
Zugriff auf HttpSession
|
String
|
Verarbeitung von Zeichenketten
|
XTags
|
XSLT und Verweise mit XPath
|
|