• Aucun résultat trouvé

Configuration de la JSTL

Il y a plusieurs choses que vous devez savoir ici. Plutôt que de vous donner tout de suite les solutions aux problèmes qui vous attendent, fonçons têtes baissées, et je vous guiderai lorsque cela s'avèrera nécessaire. On apprend toujours mieux en faisant des erreurs et en apprenant à les corriger, qu'en suivant bêtement une série de manipulations.

D'erreur en erreur...

Allons-y gaiement donc, et tentons naïvement d'insérer une balise JSTL ni vu ni connu dans notre belle et vierge page JSP : Code : JSP - Une balise JSTL dans notre page

<html> <head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO- 8859-1">

<title>Test</title> </head>

<body>

<c:out value="test" /> </body>

</html>

Pour le moment, cette notation vous est inconnue, nous y reviendrons en temps voulu. Vous pouvez d'ores et déjà constater que cette balise a une syntaxe très similaire à celle des actions standard JSP. Pour votre information seulement, il s'agit ici d'un tag JSTL issu de la bibliothèque Core, permettant d'afficher du texte dans une page. Relativement basique donc...

Basique, sur le principe oui. Mais Eclipse vous signale alors une première erreur :

tag

inconnu

Il ne connait visiblement pas cette balise. Et pour cause : puisqu'il est issu d'une bibliothèque (la JSTL), il est nécessaire de préciser à Eclipse où ce tag est réellement défini ! Et si vous avez suivi la partie précédente de ce cours, vous devez vous souvenir d'une certaine directive JSP, destinée à inclure des bibliothèques... Cela vous revient ? Tout juste, c'est la directive taglib que nous allons utiliser ici. Voici donc notre code modifié pour inclure la bibliothèque Core :

Code : JSP - Ajout de la directive taglib

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

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO- 8859-1">

<title>Test</title> </head>

<body>

<c:out value="test" /> </body>

</html>

Étudions cette directive :

dans le paramètre uri se trouve le lien vers la définition de la bibliothèque. Remarquez bien ici l'arborescence de ce lien : /jsp/jstl/core. Si vous travailliez sur des codes qui ne sont pas de vous, vous serez éventuellement amenés à rencontrer dans cette balise un lien de la forme /jstl/core : sachez que ce type de lien est celui de la version antérieure 1.0 de la JSTL. En effet, le dossier jsp a été rajouté afin d'éviter toute ambiguïté avec les précédentes versions, qui comme je vous l'ai précisé en première partie ne géraient pas les EL. Faites bien attention à utiliser le bon lien selon la version de la JSTL que vous souhaitez utiliser, sous peine de vous retrouver avec des erreurs peu compréhensibles...

dans le paramètre prefix se trouve l'alias qui sera utilisé dans notre page JSP pour faire appel aux balises de la

bibliothèque en question. Concrètement, cela signifie que si je souhaite appeler le tag if de la bibliothèque Core, je dois écrire <c:if>. Si j'avais entré "core" dans le champ prefix de la directive au lieu de "c", je devrais alors écrire

<core:if>.

Là, je suppose que vous vous apprêtez à me jeter des bûches. En effet, s'il est vrai qu'Eclipse vous signalait une alerte auparavant, vous vous retrouvez maintenant avec une nouvelle erreur en plus de la précédente !

bibliotheque introuvable Effectivement, nouvelle erreur. Pourquoi ?

Eh bien cette fois, c'est Tomcat qui est en cause ! Lorsque je vous avais présenté Tomcat, je vous avais bien précisé qu'il n'était pas un serveur d'applications Java EE au sens complet du terme. Nous voilà devant une première illustration de cet état de fait : alors que la JSTL fait partie intégrante de la plate-forme Java EE 6, Tomcat 7 n'est par défaut pas livré avec la JSTL. Si vous utilisez par exemple le serveur Glassfish d'Oracle, qui quant à lui respecte bien les spécifications Java EE, vous ne rencontrerez pas de problème : la JSTL y est bien incluse.

La lumière étant faite sur l'origine de cette erreur, il est temps de la corriger. Maintenant que nous avons précisé la définition de notre bibliothèque, il faut définir quelque part où se situe physiquement cette bibliothèque, et donc configurer notre projet afin qu'il puisse accéder à ses fichiers sources. Si vous êtes un peu curieux et que vous vous souvenez de ce que nous avons dû faire pour utiliser l'API JodaTime dans la partie précédente, vous avez probablement déjà remarqué que dans le dossier /WEB- INF de votre projet, il y a un dossier nommé... lib !

Le chemin semble donc tout tracé, nous devons aller chercher notre bibliothèque. Où la trouver ? J'y reviendrai dans le chapitre suivant, la JSTL contient nativement plusieurs bibliothèques, et Core est l'une d'entre elles. Par conséquent, c'est l'archive jar de la JSTL tout entière que nous allons devoir ajouter à notre projet. Vous pouvez télécharger le jar jstl-1.2.jar en cliquant sur ce lien de téléchargement direct. Vous voilà donc en possession du fichier que vous allez devoir copier dans votre répertoire lib :

Ajout du jar JSTL à notre projet Eclipse

Ça commence à bien faire, nous tournons en rond ! Nous avons inclus notre bibliothèque, mais nous avons toujours nos deux erreurs !

Que s'est-il passé ?

Pas d'inquiétude, nous apercevons le bout du tunnel... Effectivement, Eclipse vous crie toujours dessus. Mais ce n'est cette fois que pure illusion !

Note : la raison pour laquelle Eclipse ne met pas directement ses avertissements à jour, je n'en suis pas vraiment certain. J'imagine que l'environnement a besoin d'une modification postérieure à la mise en place des bibliothèques pour prendre en compte complètement la modification. Bref, modifiez simplement votre page JSP, en y ajoutant un simple espace ou ce que vous voulez, et sauvez. Comme par magie, Eclipse cesse alors de vous crier dessus !

Il ne vous reste plus qu'à démarrer votre Tomcat si ce n'est pas déjà fait, et vérifier que tout se passe bien, en accédant à votre JSP depuis votre navigateur : http://localhost:8080/TestJSTL/test.jsp. Le mot "test" devrait alors s'afficher : félicitations, vous venez de mettre en place et utiliser avec succès votre premier tag JSTL !

Si vous ne parvenez toujours pas à faire fonctionner votre page, reprenez attentivement et dans l'ordre chaque étape présentée ci-dessus, et si malgré cette relecture vous restez sur un échec, dirigez-vous vers le forum Java du site pour y exposer votre problème en détail.