J'utilise une page JSP pour imprimer un tableau de valeurs. J'essaie d'utiliser JSTL <c:forEach>
pour cela.
<c:forEach items="${objects}" var="object">
<td>${object.name} </td>
</c:forEach>
Le problème est ma déclaration JSTL taglib:
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core"%>
Le IDE affiche une erreur sur cette ligne
Impossible de trouver le descripteur de bibliothèque de balises.
De nombreux forums renvoient aux anciens sites Sun pour télécharger les bibliothèques JSTL. Désormais, tous ces liens pointent vers la page d'accueil Oracle sans lien vers les fichiers binaires JSTL. Cela me porte à croire qu'il existe une nouvelle approche pour y parvenir.
Pour résoudre ce problème:
Le jstl jar
devrait être dans votre chemin de classe. Si vous utilisez maven , ajoutez une dépendance à jstl dans votre pom.xml
à l'aide du fragment fourni ici . Si vous n'utilisez pas maven , téléchargez le fichier jstl à partir de ici et déployez-le dans votre WEB-INF/lib
.
Assurez-vous que la directive taglib suivante figure en haut de votre jsp
:
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core"%>
Il suffit de consulter notre propre page du wiki JSTL pour connaître les liens de téléchargement appropriés et les instructions d’installation claires.
Placez votre souris au-dessus de la balise [jstl]
que vous avez vous-même posée sur la question jusqu'à ce qu'une case noire apparaisse et cliquez dessus le lien info .
Faites ensuite défiler un peu les informations sur les versions de JSTL jusqu'à trouver le lien de téléchargement vers JSTL 1.2 (ou 1.2.1).
Enfin, déposez exactement ce fichier dans /WEB-INF/lib
de Webapp.
De cette façon, la déclaration de taglib ne doit plus donner aucune erreur et le balises et fonctions JSTL devrait fonctionner.
Je veux juste partager mon expérience. J'ai le même problème à propos de jstl en utilisant maven. Je l'ai résolu en ajoutant deux dépendances.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Si vous utilisez le serveur Tomcat, je vous suggère de placer le fichier .jar JSTL dans le dossier Tomcat lib. Ce faisant, vous aurez automatiquement accès à JSTL dans tous vos projets Web (avec la déclaration taglib dans les fichiers .jsp bien sûr).
Vous pouvez télécharger le Apache Standard Taglib et inclure le fichier jar dans votre projet.
Ceci est une solution pour les personnes qui n'utilisent pas Maven. Vous devez également ajouter standard.jar
à votre dossier lib pour que la bibliothèque de balises principale fonctionne. Fonctionne pour jstl version 1.1.
<%@taglib prefix="core" uri="http://Java.Sun.com/jsp/jstl/core"%>
Je commençais à avoir le même problème Spring Tool Suite 3.2 et a changé manuellement la version de jstl en version 1.2 (à partir de 1.1.2) lors de l'ajout à la liste de dépendances, et l'erreur a disparu.
Je rencontrais ce problème avec un projet maven utilisant l'IDE Eclipse. J'ai changé le 'Order and Export' dans le chemin de construction du projet en plaçant les dépendances Maven en premier et l'erreur a disparu. Je suppose que c'est parce que Eclipse IDE était en train de créer ma source d'application avant de charger les bibliothèques Maven.