JavaServer Pages Standard Tag LibraryJavaServer Pages Standard Tag Library
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. En supplément à JSTL, la JCP propose des Java Specification Requests (JSR) pour développer les bibliothèques de balises standards :
ObjectifLa JSTL, en tant que bibliothèque de balises JSP, propose de développer une page JSP sans y utiliser de code Java directement. 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]. VersionsActuellement, trois versions de JSTL sont disponibles, avec les restrictions suivantes :
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. UtilisationLa 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.
<?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>
<%@ 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" %>
Core : Bibliothèque de baseLa 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
<c:out value="${expression}" escapeXml="[true/false]" default="valeur par defaut" />
<c:set var="variable" value="${expression}" scope="[page/request/session/application]" target="" property="" />
<c:remove var="variable" scope="[page/request/session/application]" />
Les actions conditionnelles
<c:if test="${empty variable}">
</c:if>
<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
<c:forEach items="${param}" var="thisParam" varStatus="variableStatus">
Paramètre ${thisParam.key} = ${thisParam.value}
</c:forEach>
<c:forTokens var="thisVar" items="var1;var2;var3" delims=";">
${thisVar}
</c:forTokens>
Les urls
<c:url value="/page2">
<c:param name="param1" value="18"/>
</c:url>
Liens externes
Notes et références
Information related to JavaServer Pages Standard Tag Library |