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:

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.

63
demandé sur Chic 2012-11-28 04:06:10

8 réponses

pour résoudre ce problème:

  1. le jstl jar doit être dans votre chemin de classe. Si vous utilisez maven , ajoutez une dépendance à jstl dans votre pom.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 votre WEB-INF/lib .

  2. assurez-vous d'avoir la directive taglib suivante en haut de votre jsp :

     <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
85
répondu Babu Subburathinam 2014-12-27 11:28:09

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 .

enter image description here

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).

enter image description here

enfin déposer exactement ce fichier dans /WEB-INF/lib de webapp .

enter image description here

de cette façon, la déclaration taglib ne doit plus donner d'erreurs et les étiquettes et fonctions JSTL devraient seulement le travail.

34
répondu BalusC 2017-05-23 10:30:52

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>
3
répondu THIHA SOE 2015-01-03 16:14:54

vous pouvez télécharger le Apache Taglib Standard et inclure le bocal dans votre projet.

1
répondu Benoit Wickramarachi 2012-11-28 01:15:39

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"%>
1
répondu user2339071 2013-07-04 09:14:32

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).

1
répondu pivopil 2014-11-11 06:34:30

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.

0
répondu Aris Capellos 2013-04-24 10:16:25

j'ai eu le même problème sur enter image description here 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.

0
répondu davidqwk 2013-06-24 20:22:30