Je l'ai inclus tout en haut de ma page JSP:
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core" %>
J'ai déjà placé le fichier JST JSTL dans le répertoire WEB-INF/lib
. Mais toujours, le JSP ne peut pas résoudre la taglib. Je reçois l'erreur ci-dessous:
Impossible de trouver le descripteur de bibliothèque de balises pour “ http://Java.Sun.com/jsp/jstl/core ”
J'utilise Eclipse Juno et la structure du projet est présentée ci-dessous:
Impossible de trouver le descripteur de bibliothèque de balises pour “ http://Java.Sun.com/jsp/jstl/core ”
Basé sur une de vos questions précédentes vous utilisez Tomcat 7. Dans ce cas, vous avez besoin de JSTL 1.2. Cependant, vous avez là un fichier jstl.jar
alors que JSTL 1.2 a clairement le numéro de version inclus, de la sorte so jstl-1.2.jar
. Le seul nom de fichier jstl.jar
est typique de JSTL 1.0 et 1.1. Cette version nécessite un standard.jar
dans /WEB-INF/lib
qui contient les fichiers TLD nécessaires. Cependant, dans votre cas particulier, le standard.jar
est clairement absent de /WEB-INF/lib
et c'est exactement la raison pour laquelle l'URI de taglib n'a pas pu être résolu.
Pour résoudre ce problème, vous devez supprimer le mauvais fichier JAR, téléchargez jstl-1.2.jar et déposez-le dans son intégralité dans /WEB-INF/lib
. C'est tout. Vous n'avez pas besoin de l'extraire ni de jouer dans le chemin Build Path du projet.
N'oubliez pas de supprimer également ce fichier c.tld
desserré. Cela n’appartient absolument pas à cela. Ceci est en effet enseigné dans certains tutoriels médiocres ou des réponses ailleurs sur Internet. C'est un mythe causé par un malentendu majeur et une mauvaise configuration. Il n’est jamais nécessaire d’avoir un fichier TLD JSTL lâche dans le chemin de classe, pas plus que dans les versions précédentes de JSTL.
Si vous utilisez Maven, utilisez les coordonnées ci-dessous:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Vous devez également vous assurer que votre web.xml
est déclaré conforme au moins Servlet 2.4 et donc pas comme Servlet 2.3 ou plus ancien. Sinon, les expressions EL contenues dans les balises JSTL ne fonctionneraient pas. Choisissez la version la plus élevée correspondant à votre conteneur cible et assurez-vous de ne pas avoir de <!DOCTYPE>
nulle part dans votre web.xml
. Voici un exemple compatible avec Servlet 3.0 (Tomcat 7):
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://Java.Sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- Config here. -->
</web-app>
L'URI dépend de la version de JSTL que vous utilisez. Pour la version 1.0, utilisez:
http://Java.Sun.com/jstl/core
et pour 1.1 (et les versions ultérieures), vous devez utiliser:
http://Java.Sun.com/jsp/jstl/core
J'ai eu le même problème et malgré avoir jstl
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Je devais également ajouter «standard»:
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
En outre, comme mentionné dans le post précédent:
Télécharger jstl-1.2.jar au lieu de jstl.jar résout le problème
Si vous utilisez maven, la balise <dependencies>
de votre pom devrait ressembler à ceci:
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
Ça marche pour moi.
Téléchargez simplement javax.servlet.jsp.jstl.jar et ajoutez-le à votre chemin de construction et à WEB-INF/lib
si vous développez simplement une application Web dynamique.
Lorsque vous développez une application Web dynamique à l'aide de maven, ajoutez ensuite javax.servlet.jsp.jstl dependency dans un fichier pom.
Merci
nirmalrajsanjeev
Pour que cela fonctionne:
Ajoutez les fichiers jstl et standard jar à votre bibliothèque.
J'espère que ça aide.. :)
Eh bien, j'ai lu ce post et semble ne pas être assez bon pour résoudre ce problème.
L’application Spring sur Tomcat 8 ne fonctionnera pas.
Voici la solution
Étape 1 ⇒ Ajoutez la dépendance suivante dans votre pom.xml
<!-- JSTL Support -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Étape 2 ⇒ Ajoutez les deux instructions suivantes dans votre page JSP, vérifiez que vous utilisez l'attribut isELIgnored = "false" dans la balise <% @ page%>
<%@ page language="Java" contentType="text/html; charset=ISO-8859-1" isELIgnored="false" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core"%>
Étape 3 ⇒ Supprimez toutes les autres configurations que vous avez effectuées jusqu’à présent dans web.xml ou ailleurs :)
Étape 4 ⇒ Nettoyez le Tomcat et redémarrez-le.
Note latérale ⇒ En fait, JSTL fonctionnera uniquement avec les spécifications de servlet 3.x sur Tomcat 8.
[http://www.kriblog.com/j2ee/jsp/jstl-with-spring-4-on-Tomcat-8.html]
vous devez également configurer ceci dans web.xml.Veuillez vous reporter au code ci-dessous.
<taglib>
<taglib-uri>http://Java.Sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/lib/c.tld</taglib-location>
</taglib>
S'il vous plaît laissez-moi savoir si vous rencontrez toujours un problème.
ajoutez les dépendances maven:
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<scope>compile</scope>
</dependency>
Assurez-vous que les deux fichiers jars ci-dessous sont présents dans le chemin de génération:
Les dépendances Maven sont:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>$1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency