Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

JSTL - JSP Standard Tag Library

Ähnliche Präsentationen


Präsentation zum Thema: "JSTL - JSP Standard Tag Library"—  Präsentation transkript:

1 JSTL - JSP Standard Tag Library
ETIS SS04

2 Gliederung Motivation Bestandteile core - Kernfunktionalität
function - Funktionen fmt - Formatierung / Internationalisierung Zusammenfassung JSTL ETIS SS04

3 Motivation (I) ZIEL JSP: Web-Designer Arbeit mit Servlets ermöglichen
ABER: eingebetteter Java-Code ist problematisch DAHER: Custom Tag Libraries mit JSP 1.1 Tag-Library-Descriptor: XML-Datei, beschreibt, welche Tags die Library bereitstellt für jedes Tag eine Tag-Handler-Klasse festgelegt Tag-Handler, Java-Klassen, legen Aktionen bei Auftreten eines Tags fest Tag-Handler Tag-Library = Tag-Library-Decriptor + JSTL ETIS SS04

4 Motivation (II) Standardisierte Tag Libraries fehlten lange
JSTL (JSP Standard Tag Library) kapselt Kernfunktionalität, die vielen Webanwendungen gemeinsam ist (Iterationen, Internationalisierung, ...) Spezifikation unter JSR-52 „A Standard Tag Library for JavaServer Pages“ in JCP erarbeitet Referenzimplementierung vom Jakarta Taglibs-Projekt aktuell Version 1.1 – JSP 2.0 mit JSTL Einführung der Expression Language (EL) GUIs nicht durch JSTL abgedeckt  Entwicklung: JSF JSTL ETIS SS04

5 Bestandteile Tag-Bibliothek Aufgabe core
Grundlegende Tags (für Schleifen, Bedingungen, Ausnahmebehandlung) fmt Internationalisierung, Datums- und Zahlenformatierung sql Tags zur Einbindung relationaler DBs xml Umgang mit XML (Parsen, Transformieren von XML-Dokumenten) functions Funktionen v.a. zur Verarbeitung von Zeichenketten JSTL ETIS SS04

6 Core – Kernfunktionalität (I)
Bedingte Ausführung mit Scriptlets: <% if (comic.isBestseller()) { %> <b>Bestseller!</b> <% } %> mit Tags: taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/core“ %> <c:if test = “${comic.bestseller}“> </c:if> JSTL ETIS SS04

7 Core – Kernfunktionalität (II)
Bedingte Ausführung (entspricht if-then-else) taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/core“ %> <c:choose> <c:when test="${comic.bestseller}"> <c:out value="Bestseller"/> </c:when> <c:otherwise> <c:out value="Buch"/> </c:otherwise> </c:choose> JSTL ETIS SS04

8 Core - Kernfunktionalität (II)
Schleifen taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/core“ %> <c:forEach var=“autor“ items=“${comic.autoren}“> <c:out value=“${autor.name}“/> </c:forEach> items: als Scoped Variable gespeicherte Collection Scoped Variable: in einem Gültigkeitsbereich (page, request, session, application) einer Web-Anwendung gespeichertes Objekt var: Name einer Scoped Variable (enthält aktuellen Wert der Iteration) JSTL ETIS SS04

9 Core - Kernfunktionalität (III)
Weitere Funktionalitäten: Ausnahmebehandlung <c:catch ...> Links + Redirects <c:url ...> <c:redirect ...> Einbinden externer Ressourcen <c:import ...> JSTL ETIS SS04

10 function - Funktionen Funktionen v.a. zur Verarbeitung von Zeichenketten Beispiele: contains(string, substring) join (collection, separator) toLowerCase(string) trim(string) konkretes Beispiel: taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/core“ %> Autoren: ${fn:join(buch.autoren, “, “)} JSTL ETIS SS04

11 fmt – Internationalisierung/Formatierung (I)
Internationalisierung (kurz: I18N) Anwendung für Benutzer verschiedener Sprachen zugänglich machen Text in Sprache des Anwenders Datumsangaben + Zahlen landesabhängig anstelle fest angegebener Zeichenketten treten Schlüssel in einer Art Zeichenkettentabelle (Resource Bundle) Ressource Bundle i.d.R. als Properties Datei gespeichert #Message_en.properties welcomePage.title = Welcome! welcomePage.button.submit = Submit Sprache im Datei-namen kodiert JSTL ETIS SS04

12 fmt – Internationalisierung/Formatierung (II)
JSP-Seite: taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/fmt“ %> <fmt:bundle bundle=“etis.jstl.Messages“ prefix=“welcomePage.“> <fmt:message key=“title“/> </fmt:bundle> hierbei: implizite Auswahl der Sprache/Land auf Grundlage des Accept-Language-Headers explizites Setzen möglich <fmt:setLocale value="en"/> JSTL ETIS SS04

13 fmt – Internationalisierung/Formatierung (III)
Zahlen- und Datumsformatierung länderabhängige Darstellung Beispiel: 10.950,00 (DE) / 10, (USA) / ,00 (FR) Dienstag, 15.Juni 2004 (DE) / Tuesday, June 15, 2004 (USA) Lösung: <fmt:formatNumber> taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/fmt“ %> <fmt:formatNumber value=“ “ type=“currency“ currencyCode=“EUR“/> Ausgabetype (Zahl, Prozent-wert, Währung) Währungssymbol JSTL ETIS SS04

14 fmt – Internationalisierung/Formatierung (IV)
<fmt:formatDate> taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/fmt“ %> <jsp:useBean id=“currentDate“ class=“java.util.Date“/> <fmt:formatDate value=“${currentDate}“ type=“date“ dateStyle=“full“/> detaillierte Darstellungsformatierung mit dateStyle bzw. timeStyle z.B. dateStyle=“full“: Dienstag, 15.Juni 2004 z.B. timeStyle=“full“: 9.30 Uhr CEST JSTL ETIS SS04

15 fmt – Internationalisierung/Formatierung (V)
Tags Aufgabe setBundle Setzt Ressourcenbündel für den Rest der Seite (Zeichenketten-Dateien) bundle Setzt im Rumpf des Tags zu verwendende Ressourcenbündel setLocale Setzt zu verwendende Locale (Kombination Land Sprache de-DE de-AT) message Gibt lokalisierte Zeichenkette aus formatDate Formatiert Datums- und Uhrzeitangaben (abhängig von Locale) formatNumber Formatiert Zahlen (abhängig von Locale) JSTL ETIS SS04

16 Zusammenfassung Grundlegende Anforderungen vieler Webanwendungen mit JSTL erfüllt Internationalisierung, Iteration, XML, DB, ... GUI-Entwicklung nicht abgedeckt wenige, flexibel verwendbare Tags anstelle vieler ähnlicher Tags JSTL ETIS SS04

17 Literatur Turau, V., Saleck, K., Lenz, C., Web-basierte Anwendungen entwickeln mit JSP2, dpunkt.verlag, Heidelberg, 2004 Wille, S., Go To Java Server Pages, Addison-Wesley, München, 2001 JSTL ETIS SS04


Herunterladen ppt "JSTL - JSP Standard Tag Library"

Ähnliche Präsentationen


Google-Anzeigen