Je ne trouve pas le descripteur de bibliothèque d'étiquette pour "http://java.sun.com/jsp/jstl/core"

j'ai inclus ceci en haut de ma page JSP:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

j'ai déjà placé le fichier JSTL JAR dans le répertoire WEB-INF/lib . Mais quand même, le JSP ne peut pas résoudre le taglib. Je reçois l'erreur suivante:

ne trouve pas le descripteur de bibliothèque d'étiquette pour " http://java.sun.com/jsp/jstl/core "

J'utilise Eclipse Juno et la structure du projet est montrée ci-dessous:

enter image description here

39
demandé sur BalusC 2012-11-08 13:10:15

11 réponses

ne trouve pas le descripteur de bibliothèque d'étiquette 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 comme jstl-1.2.jar . Le seul nom de fichier jstl.jar est typique pour JSTL 1.0 et 1.1. Ce la 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 dans le /WEB-INF/lib et c'est exactement la raison pour laquelle le tagliburi n'a pas pu être résolu.

pour résoudre ce problème, vous devez supprimer le mauvais fichier JAR, télécharger jstl-1.2.jar et le laisser tomber dans son intégralité dans /WEB-INF/lib . C'est tout. Vous n'avez pas besoin de l'extraire ni à la tripoter dans le projet Build Path .

n'oubliez pas de supprimer ce fichier c.tld . Il absolument ne pas y être. Cela est en effet enseigné dans quelques tutoriels pauvres ou des réponses ailleurs dans L'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 libre dans classpath, pas plus que dans les versions JSTL précédentes.

dans le cas où vous utilisez Maven, utilisez le coordonnées:

<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. Sinon, les expressions EL à l'intérieur des balises JSTL ne fonctionneraient pas. Choisissez la version la plus haute correspondant à votre conteneur cible et assurez-vous que vous n'avez pas un <!DOCTYPE> n'importe où dans votre web.xml . Voici un exemple compatible 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>

voir aussi:

85
répondu BalusC 2017-05-23 12:26:09

L'URI dépend de la version de JSTL que vous utilisez. Pour la Version 1.0 utiliser:

http://java.sun.com/jstl/core

et pour 1,1 (et plus tard), vous devez utiliser:

http://java.sun.com/jsp/jstl/core
7
répondu nfechner 2012-11-08 09:13:46

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>

j'ai dû ajouter "standard" aussi:

<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

aussi, comme mentionné dans le post précédent:

5
répondu Nenad Bulatovic 2017-04-18 19:05:57

vous devez configurer cela dans web.xml aussi.Veuillez vous référer 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>

faites-moi savoir si vous avez encore un problème.

0
répondu Gautam 2012-11-08 09:50:12

si vous utilisez maven votre balise <dependencies> de pom devrait ressembler à:

<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 me va.

0
répondu Anakii Eugene 2015-12-10 14:55:48

Eh bien, j'ai lu ce post et il semble qu'il ne soit pas assez bon de corriger cette question.

L'application

basée sur le ressort tomcat 8 ne fonctionnera pas.

Voici la solution

Étape 1 ⇒ ajouter 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 tous les deux énoncés suivants dans votre page JSP, assurez-vous que vous utilisez isELIgnored="false" attribut <%@ page %> balise

<%@ 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 faites jusqu'à présent dans web.xml ou n'importe où ailleurs :)

Étape 4 ⇒ nettoyer le Tomcat et redémarrer le Tomcat.

side note ⇒ en fait, JSTL ne fonctionnera qu'avec 3.x spécifications des servlets sur Tomcat 8.

[http://www.kriblog.com/j2ee/jsp/jstl-with-spring-4-on-tomcat-8.html]
0
répondu user1788142 2016-02-21 15:28:28

Pour le faire fonctionner:

Ajouter jstl et standard pot de fichiers à votre bibliothèque.

J'espère que ça aidera.. :)

0
répondu Sarat Chandra 2017-05-04 08:24:52

ajouter 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>
0
répondu Dev M 2017-07-11 12:17:59

il suffit de télécharger javax.servlet.JSP.jstl.jar et ajouter à 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 en utilisant maven, ajoutez javax.servlet.JSP.dépendance jstl dans le fichier pom.

Merci

nirmalrajsanjeev

0
répondu Sanjeev Kumar 2017-11-30 05:06:18

assurez-vous que les deux bocaux ci-dessous sont présents dans le chemin de construction:

  1. standard-1.1.2.jar
  2. JSTL-api-1.2.jar

les dépendances de Maven sont:

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>.2</version>
</dependency>

<dependency>
   <groupId>taglibs</groupId>
   <artifactId>standard</artifactId>
   <version>1.1.2</version>
</dependency
0
répondu Anshul Sood 2018-02-16 06:25:30

téléchargement jstl-1.2.jar au lieu de jstl.jar résout le problème

0
répondu shikha singh 2018-06-06 05:09:55