La déclaration de taglib de Sun JSTL échoue avec "ne trouve pas le descripteur de bibliothèque d'étiquette" [dupliquer]
cette question a déjà une réponse ici:
- ne trouve pas le descripteur de bibliothèque de balise pour "http://java.sun.com/jsp/jstl/core " 11 réponses
j'utilise une page JSP pour imprimer un tableau de valeurs. J'essaie D'utiliser JSTL <c:forEach>
pour ça.
<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"%>
l'IDE affiche une erreur sur cette ligne
ne peut pas trouver le descripteur de bibliothèque d'étiquette.
beaucoup de forums pointent vers l'ancien site Sun pour télécharger les bibliothèques JSTL. Maintenant, tous ces liens pointent vers la page D'accueil D'Oracle sans lien vers les binaires JSTL. Cela me porte à croire qu'il existe une nouvelle approche pour y parvenir.
8 réponses
pour résoudre ce problème:
-
le
jstl jar
doit être dans votre chemin de classe. Si vous utilisez maven , ajoutez une dépendance à jstl dans votrepom.xml
en utilisant l'extrait fourni ici . Si vous n'utilisez pas maven , téléchargez la jarre jstl de ici et déployez-la dans votreWEB-INF/lib
. -
assurez-vous d'avoir la directive taglib suivante en haut de votre
jsp
:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
il suffit de vérifier notre propre page wiki JSTL pour les liens de téléchargement appropriés et les instructions d'installation cristalline.
placez votre souris au-dessus de l'étiquette [jstl]
que vous avez placée vous-même sur la question jusqu'à ce qu'une boîte noire apparaisse et cliquez sur le lien info .
puis faites défiler un peu vers le bas JUSQU'à JSTL informations sur les versions jusqu'à ce que vous trouviez le lien de téléchargement vers JSTL 1.2 (ou 1.2.1).
enfin déposer exactement ce fichier dans /WEB-INF/lib
de webapp .
de cette façon, la déclaration taglib ne doit plus donner d'erreurs et les étiquettes et fonctions JSTL devraient seulement le travail.
je veux juste partager mon expérience. J'ai le même problème avec jstl qui utilise 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>
vous pouvez télécharger le Apache Taglib Standard et inclure le bocal dans votre projet.
c'est un correctif pour les gens qui n'utilisent pas maven. Vous devez également ajouter standard.jar
à votre dossier lib pour que la bibliothèque de balises core fonctionne. Fonctionne avec la version 1.1 de jstl.
<%@taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core"%>
si vous utilisez Tomcat server, je vous suggère de mettre JSTL .fichier jar dans le dossier lib de Tomcat. En faisant cela, vous aurez automatiquement accès à JSTL dans tous vos projets web (avec la déclaration taglib in .fichiers jsp, bien sûr).
j'ai eu ce problème avec un projet maven utilisant l'IDE eclipse. J'ai modifié le 'Ordre et L'exportation' dans le chemin de construction du projet en mettant les dépendances Maven en premier et l'erreur a disparu. Je suppose que c'est parce que l'IDE eclipse construisait initialement mon Source d'application avant de charger les bibliothèques Maven.
j'ai eu le même problème sur Spring Tool Suite 3.2 et j'ai changé la version de jstl à 1.2 (de 1.1.2) manuellement en l'ajoutant à la liste de dépendances, et l'erreur a disparu.