web-dev-qa-db-fra.com

La déclaration taglib de Sun JSTL échoue avec le message "Impossible de trouver le descripteur de bibliothèque de balises"

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.

65
Atma

Pour résoudre ce problème:

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

  2. Assurez-vous que la directive taglib suivante figure en haut de votre jsp:

     <%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core"%>
    
92
Babu Subburathinam

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 .

enter image description here

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

enter image description here

Enfin, déposez exactement ce fichier dans /WEB-INF/lib de Webapp.

enter image description here

De cette façon, la déclaration de taglib ne doit plus donner aucune erreur et le balises et fonctions JSTL devrait fonctionner.

35
BalusC

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>
4
THIHA SOE

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

2
pivopil

Vous pouvez télécharger le Apache Standard Taglib et inclure le fichier jar dans votre projet.

1

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"%>
1
user2339071

Je commençais à avoir le même problèmeenter image description here 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.

0
davidqwk

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.

0
Aris Capellos