Jakarta Standard Tag Library
JSTL | |
---|---|
Entwickler: | Eclipse Foundation |
Aktuelle Version | 3.0.0[1] (4. Mai 2022) |
Betriebssystem: | plattformunabhängig |
Lizenz: | Eclipse Public License 2.0, GPL linking exception |
projects.eclipse.org/projects/ee4j.jstl |
Die Jakarta Standard Tag Library (JSTL; früher JavaServer Pages Standard Tag Library) ist eine Sammlung von vier Custom-Tag-Bibliotheken, die für die Erstellung von JSP-Seiten hilfreich sind.
Die JSTL wird im Rahmen des Java Community Process (JCP) unter JSR 052 verwaltet. Innerhalb des Jakarta-Projektes gibt es zu dieser Spezifikation Referenzimplementierungen.
Bestandteile
[Bearbeiten | Quelltext bearbeiten]In der Version 1.1 sind folgende Bibliotheken vorgesehen:
- core: iterative, konditionale, URL-spezifische und allgemeine Tags
- xml: Tags aus dem Bereich XML und XML-Transformation
- sql: Tags zur direkten Datenbankverarbeitung
- i18n: Tags zur Formatierung und Internationalisierung
Geschichte
[Bearbeiten | Quelltext bearbeiten]In der ursprünglichen Version 1.0 war gegenüber der Version 1.1 eine Expression Language vorgesehen. Mit JSP 2.0 wurde die JSP-EL in die JSP-Spezifikation selbst aufgenommen. Das primäre Ziel der JSTL 1.1 ist dementsprechend die Anpassung der Bibliothek auf die JSP-EL für JSP 2.0. Mit der Version 1.2 der Bibliothek wird die JSTL auf den aktuellen Stand bezüglich der Vereinheitlichung der Expression Language durch die JSP 2.1 und JSF-1.2-Spezifikationen gebracht. Des Weiteren ist die JSTL mit Version 1.2 Teil der Java-EE-5-Plattform.
Verwendung der JSTL 1.1
[Bearbeiten | Quelltext bearbeiten]Da für die JSTL 1.1 die JSP-EL vorausgesetzt wird, muss ein Servlet-Container mindestens der JSP-2.0-Spezifikation genügen, damit sie auf diesem verwendet werden kann. Die Referenzimplementierung gliedert sich in zwei JAR-Archive standard.jar und jstl.jar, die bei den meisten Containern üblicherweise nur im lib-Pfad der Webanwendung zu finden sein müssen. Zur Erhaltung der Rückwärtskompatibilität wird die JSTL 1.1 durch den URI http://java.sun.com/jsp/jstl/fmt
referenziert, während man bei JSTL 1.0 http://java.sun.com/jstl/fmt
verwendete.
Beispiel JSP-Seite in XML-Schreibweise (JSPX):
<?xml version="1.0" encoding="utf-8" ?>
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
version="2.0">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>JSTL 1.1</title>
</head>
<body>
<h1>Iteration</h1>
<ul>
<c:forEach var="num" begin="1" end="10">
<li>Nummer <c:out value="${num}"/></li>
</c:forEach>
</ul>
<h1>Formatierung</h1>
<p>
Währung: <fmt:formatNumber value="10000" type="currency" currencyCode="EUR" />
</p>
</body>
</html>
</jsp:root>
Erläuterungen zum JSP-Code:
Im Element jsp:root
wird die Verwendung der Basis- und der I18N-Taglibs (core und fmt) aus der JSTL angezeigt und diese an entsprechende XML-Namensräume gebunden. Unter der Überschrift Iteration wird das forEach-Tag aus der core-Bibliothek verwendet: Der Tag-Body (das heißt, der Inhalt des Tags) wird hier zehnmal ausgegeben. In dieser Schleife findet sich mit ${num}
ein JSP-Expression: Hier wird mit jedem Schleifendurchlauf der aktuelle Wert von ‚num‘ ausgegeben. Unter der Überschrift Formatierung wird das formatNumber-Tag aus der fmt-Bibliothek der JSTL verwendet. Je nach eingestellter Sprache (diese lässt sich zum Beispiel per fmt:setLocale
setzen) wird die Zahl 10000 hier anders formatiert (kann zum Beispiel auf Deutsch als „EUR 10.000,00“ und auf Englisch als „EUR 10,000.00“ ausgegeben werden).
Die JSTL und Struts
[Bearbeiten | Quelltext bearbeiten]Im Gegensatz zum Struts-Framework ist die JSTL nicht an ein bestimmtes Architektur-Paradigma wie z. B. MVC gebunden. Beide Tag-Bibliotheken besitzen gleichnamige Tags. Daher muss bei gemischter Verwendung der eindeutige Präfix (JSP) bzw. der Namensraum (JSPX) beachtet werden.
Weblinks
[Bearbeiten | Quelltext bearbeiten]- ↑ jakartaee/tags. (abgerufen am 26. Mai 2024).