Java Server Pages Standard Tag Library

Die Java Server Pages Standard Tag Library baut auf der Technologie der Java Server Pages auf.

Während die Ausdrucksmöglichkeiten für Präsentationslogik bei den Java Server Pages in Reinform im Wesentlichen auf in die Seiten eingebauten Java Code basieren, führt die Java Server Pages Standard Tag Library eine Vielzahl ausdrucksstarker Tag Typen ein, die in den Java Server Pages verwendet werden können.

Innerhalb der Seite können Werte aus dem Datenmodell der Webanwendung durch die Java Server Pages Standard Tag Library Expression Language (EL) referenziert werden.


Expression Language (EL)

Die Expression Language dient dazu, innerhalb von Java Server Pages auf Werte aus dem Datenmodell der Webanwendung zuzugreifen.

Ausdrücke expr der Expression Language werden speziell syntaktisch gekennzeichnet ${expr}.

Elementare Ausdrücke können Konstanten (z.B. "abc" oder 123) oder Werte in Java Beans (z.B. customer.firstName) sein. Auf Elemente von Listen, Maps oder Arrays kann mit dem [] Operator zugegriffen werden (z.B. orders[3] oder map["abc"]).

Als weitere Operatoren der Expression Language sind die üblichen Vergleichsoperatoren, logische Operatoren und arithmetische Operatoren erlaubt.

Eine Reihe von Funktionen für die Zeichenkettenverarbeitung (fn:contains, fn:containsIgnoreCase, fn:endsWith, fn:escaleXml, fn:indexOf, fn:replace, fn:startsWith, fn:subString, fn:substringAfter, fn:substringBefore, fn:toLowerCase, fn:toUpperCase, fn:trim) sowie der Konvertierung von Zeichenketten (fn:join, fn:split) und eine generische Funktion, die die Länge von Collections oder Zeichenketten ermittelt (fn:length) gehören zum Lieferumfang.


Allgemeine Tags

Das c:out Tag dient der Einbettung des Ergebnisses eines EL Ausdrucks in die Seite. Mit dem Tag c:set kann der Wert einer Variablen gesetzt werden. Das c:remove Tag entfernt eine Variable aus dem Kontext. c:catch definiert einen Catch-Block um die eingebetteten Tags.


Tags für Fallunterscheidungen

Das c:if Tag drückt eine einfache Fallunterscheidung aus. Der zwischen <c:if test=...> und </c:if> eingeschlossene Content wird berücksichtigt, wenn das Ergebnis des Tests wahr ist. Mit den Tags c:choose, c:when und c:otherwise kann eine Mehrfachfallunterscheidung ausgedrückt werden.


Tags für Schleifen

Mit c:forEach wird eine Schleife über die Elemente einer Collection oder ein numerisches Intervall ausgedrückt. Das Tag c:forTokens erlaubt eine Schleife über den Inhalt eines StringTokenizers.


Tags für URLs

Mit dem c:url Tag wird ein Link in die Seite eingebettet. Mit dem c:param Tag können Parameter für die Link URL definiert werden. Das Tag c:import importiert den Inhalt eines durch eine URL referenzierten externen Inhalts in die Seite. Ein Redirect zu einer anderen URL kann mit dem c:redirect Tag erreicht werden.


Tags für Internationalisierung und Formatierung

Mit dem fmt:message Tag kann ein Text aus einem ResourceBundle ermittelt werden. Die Tags fmt:formatNumber und fmt:formatDate dienen der Formatierung von Zahlen bzw. Datumsangaben. Mit fmt:parseNumber und fmt:parseDate können Zahlen oder Datumsangaben geparst werden.


Weitere Tags

Die Tags aus der Familie sql dienen dem Zugriff (Query, Insert, Update, Delete) auf SQL Datenbanken.

Die xml Familie von Tags dient dem Parsen von XML, dem Zugriff (lesend und schreibend) auf Teile des Inhalts mit Hilfe von XPath sowie der Transformation mit XSLT.


Quelle

http://jcp.org/aboutJava/communityprocess/final/jsr052/index2.html