Table des matières

D3-C03 : JAKARTA EE (3) : la communication d'informations

Expression Language (EL)

Prérequis :

Les expressions EL vont permettre d'éviter, voire de limiter, l'utilisation de code JAVA dans Jakarta EE (scriptlet). Ceci est particulièrement intéressant pour les dernières versions du JDK qui ne permettent plus de facilement importer des classes (beans) dans les jsp.

Utilisation d'Expression Language

Syntaxe générale : ${ expression }

Une expression peut-être un calcul ou un test, exemples :

Tous les opérateurs sont possibles : + - * / % && || > < == etc

Une expression peut être un paramètre de la requête, exemple

La servlet peut avoir mis un objet en attribut, dans ce cas, au niveau de la jsp, on peut le récupérer pour l'afficher :

Il n'y a pas besoin de faire d'importation spécifique, ni de transtypage.

Note: Pour plus d'informations sur Expression Langage : https://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html

Les avantages des EL

Les fragments JSPF

Tâches structurelles courantes avec JSTL (Java Server page Standard Tag Library)

JSTL va nous permettre, grâce à des balises, de réaliser les principales actions nécessaires dans la couche de présentation. JSTL prend en charge les tâches structurelles courantes telles que l’itération et les conditions, les balises pour la manipulation de documents XML, ainsi que les balises SQL.

Note: JSTL nécessite l’import de la librairie :

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

Condition(exemple avec un pseudo)

avec scriptlet, sans JSTL avec JSTL
<br><% if(request.getParameter(“pseudo”) != null) { %><br> Bonjour <%= request.getParameter(“pseudo”) %><br><% } %><br> <br><c:if test=“${not empty param.pseudo}”><br> Bonjour ${param.pseudo}<br></c:if><br>

Boucles (exemple avec une liste d’objets)

avec scriptlet, sans JSTL avec JSTL
<br><% for(String nom : (List<String>) request.getAttribute(“liste”)) { %><br> <li><%= nom %></li><br><% } %><br> <br><c:forEach var=“nom” items=“${liste}”><br> <li>${nom}</li><br></c:forEach><br>

A Savoir: Combiner EL, JSPF et JSTL permet d'avoir de bonnes pratiques :

  • pas de Java “brut” dans la JSP (mélange HTML + Java → lourd, illisible, obsolète),
  • JSP reste du HTML enrichi → plus clair, plus proche des frameworks modernes,
  • limiter au maximum la logique dans la JSP → la servlet (ou le contrôleur) fait le traitement, la JSP ne fait que l’affichage.