Top Qs
Chronologie
Chat
Contexte
JavaServer Pages Standard Tag Library
logiciel informatique De Wikipédia, l'encyclopédie libre
Remove ads
La JavaServer Pages Standard Tag Library (JSTL) est un composant de la plate-forme JEE de développement. Elle étend la spécification JSP en ajoutant une bibliothèque de balises pour les tâches courantes, comme le travail sur des fichiers XML, l'exécution conditionnelle, les boucles et l'internationalisation. JSTL a été développée par la Java Community Process (JCP). Le , la JSTL 1.2 est sortie.
Remove ads
En supplément à JSTL, la JCP propose des Java Specification Requests (JSR) pour développer les bibliothèques de balises standards :
Remove ads
Objectif
La JSTL, en tant que bibliothèque de balises JSP, propose de développer une page JSP sans y utiliser de code Java directement.
Elle utilise ainsi une syntaxe proche des langages utilisés par les web designers (HTML ou XHTML) ce qui leur permet de concevoir des pages dynamiques complexes sans connaissances préalable du langage Java.
Notoriété
De très nombreuses applications JEE pour le Web (à base de servlets et JSP) et frameworks Java incluent la JSTL, ou invitent à l'utiliser, par exemple Liferay[1], Jahia[2], Spring[3].
Versions
Résumé
Contexte
Actuellement, trois versions de JSTL sont disponibles, avec les restrictions suivantes :
- La JSTL 1.0 nécessite un conteneur JSP 1.2 (J2EE 1.3).
- La JSTL 1.1 nécessite un conteneur JSP 2.0 (J2EE 1.4).
- La JSTL 1.2 nécessite un conteneur JSP 2.1 (J2EE 1.5).
La JSTL se base sur l'utilisation des Expressions Languages en remplacement des scriptlets Java. Toutefois, ce mécanisme n'est disponible qu'avec un conteneur JSP 2.0.
Utilisation
La JSTL, dans ses versions 1.1 et 1.2, se base sur les JSP 2.0 qui intègre un moteur d'Expression Language, elle ne définit donc qu'une seule implémentation avec les URIs suivantes :
Pour développer une page JSP a base de JSTL il suffit de déclarer la bibliothèque et de configurer le fichier web.xml qui contient le paramétrage des servlets d'une application JEE.
- Exemple de configuration, optionnelle, de la bibliothèque dans le fichier web.xml :
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<context-param>
<param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
<param-value>jdbc/data</param-value>
</context-param>
</web-app>
- Déclaration complète de la bibliothèque pour chaque page JSP implémentée :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
Remove ads
Core : Bibliothèque de base
Résumé
Contexte
La bibliothèque Core propose les quelques balises essentielles pour utiliser le langage des JSP comme langage de templates en évitant d'y écrire des instructions et expressions directement en Java :
Les variables
- Afficher une expression : <c:out />
<c:out value="${expression}" escapeXml="[true/false]" default="valeur par defaut" />
- Définir une variable : <c:set />
<c:set var="variable" value="${expression}" scope="[page/request/session/application]" target="" property="" />
- Supprimer une variable : <c:remove />
<c:remove var="variable" scope="[page/request/session/application]" />
Les actions conditionnelles
- Équivalence du "if" en JAVA : <c:if />
<c:if test="${empty variable}">
</c:if>
- Équivalence du "switch" en JAVA : <c:choose />
<c:choose>
<c:when test="${expression1 == true}">
Expression 1
</c:when>
<c:when test="${expression2 == true}">
Expression 2
</c:when>
<c:otherwise>
Autre chose
</c:otherwise>
</c:choose>
Les itérations
- Itérer sur une collection : <c:forEach />
<c:forEach items="${param}" var="thisParam" varStatus="variableStatus">
Paramètre ${thisParam.key} = ${thisParam.value}
</c:forEach>
- Itérer sur une chaîne de caractère : <c:forTokens />
<c:forTokens var="thisVar" items="var1;var2;var3" delims=";">
${thisVar}
</c:forTokens>
Les urls
- Afficher une URL contenant des paramètres : <c:url /> et <c:param />
<c:url value="/page2">
<c:param name="param1" value="18"/>
</c:url>
Remove ads
Liens externes
- Spécification JSTL et implémentation de référence
- JSR 52 (JSTL 1.0, 1.1 et 1.2)
- Apache Standard Taglib, une implémentation de la JSTL
Notes et références
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads