Servlets et des JSP : la JSTL

Quelques liens utiles

Le but de ce TP est de se familiariser avec l'utilisation de librairie de balises et notamment de la JSTL (Java Standard Tag Library).

Utiliser le langage d'expression (EL)

Documentions :

Présentation du langage d'expressions
http://adiguba.developpez.com/tutoriels/j2ee/jsp/el/ (en locale)

Depuis la version 2.0 des JSP, il est possible de placer à n'importe quel endroit d'une page JSP des expressions qui sont évaluées et remplacées par le résultat de leur évaluation. La syntaxe est la suivante :

${ expression }

Java Standard Tag Library

Récupérer et installer la JSTL 1.1

Documentations :

La page sur la JSTL chez Java Soft
http://java.sun.com/products/jsp/jstl/
Les transparents sur les librairies de balises
sont disponibles
La documentation de la JSTL 1.1
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/
Un cours sur la JSTL
http://adiguba.developpez.com/tutoriels/j2ee/jsp/jstl/ (en locale)
Les articles sur la JSTL de onjava.com
1ère partie, 2ème partie et 3ème partie.

Travail :

Remarque : Je vous encourage fortement à lire le cours sur la JSTL (lien ci-dessus). Il explique bien le fonctionnement de ses balises et donne de nombreux exemples.

Utiliser la JSTL

Pour utiliser la JSTL 1.1.x dans une application basée sur un moteur de servlets respectant le standard JSP 2.0, il suffit de copier dans le répertoire WEB-INF/lib de votre application WEB les fichiers jstl.jar et standard.jar qui se trouvent dans le répertoire lib de la distribution JSTL.

Il est notamment inutile de copier les fichiers .tld. Ceux-ci se trouvent dans les .jar et sont pris en compte automatiquement. Une fois le contexte de votre application relancé, vous pouvez essayer la page suivante :

<html>
<body>

<!-- controle, iterations, tests, variables -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- traitement XML -->
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<!-- formattage des donnees -->
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!-- SQL/JDBC -->
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>


<p>Les parametres:</p>

<ul>
<c:forEach var="aParam" items="${param}">
  <li>un parametre :
    <c:out value="${aParam.key}"/> = <c:out value="${aParam.value}"/>
  </li>
</c:forEach>
</ul>

<c:choose>
  <c:when test="${param['question'] == 'oui'}">
     <p>OUI</p>
  </c:when>
  <c:otherwise>
     <p>NON</p>
  </c:otherwise>
</c:choose>

</body>
</html>

Travail :