Imansible trovare il descrittore della libreria di tag per “http://java.sun.com/jsp/jstl/core”

Ho incluso questo nella parte superiore della mia pagina JSP:

 

Ho già inserito il file JAR JSTL nella directory WEB-INF/lib . Ma ancora, il JSP non può risolvere il taglib. Ottengo il seguente errore:

Imansible trovare il descrittore della libreria di tag per ” http://java.sun.com/jsp/jstl/core ”

Sto usando Eclipse Juno e la struttura del progetto è la seguente:

inserisci la descrizione dell'immagine qui

Imansible trovare il descrittore della libreria di tag per ” http://java.sun.com/jsp/jstl/core

In base a una delle tue domande precedenti , stai utilizzando Tomcat 7. In tal caso, devi disporre di JSTL 1.2. Tuttavia, hai un file jstl.jar mentre JSTL 1.2 ha chiaramente il numero di versione incluso come jstl-1.2.jar . L’unico nome file jstl.jar è tipico per JSTL 1.0 e 1.1. Questa versione richiede un file standard.jar lungo in /WEB-INF/lib che contiene i file TLD necessari. Tuttavia, nel tuo caso particolare, lo standard.jar è chiaramente mancante in /WEB-INF/lib e questo è esattamente il motivo per cui l’URI di taglib non può essere risolto.

Per risolvere questo è necessario rimuovere il file JAR errato, scaricare jstl-1.2.jar e rilasciarlo nella sua interezza in /WEB-INF/lib . È tutto. Non è necessario estrarlo né giocherellare nel percorso di costruzione del progetto.

Non dimenticare di rimuovere anche il file c.tld . Assolutamente non appartiene a questo. Questo è effettivamente istruito in alcuni tutorial poveri o risposte altrove su Internet. Questo è un mito causato da un grande fraintendimento e errata configurazione. Non è mai necessario avere un file JDL TLD allentato nel classpath, anche non nelle precedenti versioni di JSTL.

Nel caso tu stia usando Maven, usa la seguente coordinata:

  javax.servlet jstl 1.2  

Dovresti anche assicurarti che il tuo web.xml sia dichiarato conforms almeno al Servlet 2.4 e quindi non come Servlet 2.3 o precedente. Altrimenti le espressioni EL all’interno dei tag JSTL non funzionerebbero a loro volta. Scegli la versione più alta corrispondente al tuo contenitore di destinazione e assicurati di non avere un ovunque nel tuo web.xml . Ecco un esempio compatibile con Servlet 3.0 (Tomcat 7):

     

Guarda anche:

  • La nostra pagina wiki JSTL (puoi raggiungerla passando il mouse su jstl e facendo clic sul link informazioni )
  • Come installare JSTL? L’uri assoluto: http://java.sun.com/jstl/core non può essere risolto

L’URI dipende dalla versione di JSTL che stai utilizzando. Per la versione 1.0 utilizzare:

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

e per 1.1 (e successivi), è necessario utilizzare:

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

Ho avuto lo stesso problema e nonostante abbia jstl

  javax.servlet jstl 1.2  

Ho dovuto aggiungere anche “standard”:

  taglibs standard 1.1.2  

Inoltre, come menzionato nel post precedente:

è necessario configurarlo anche in web.xml.Fare riferimento al codice riportato di seguito.

  http://java.sun.com/jsp/jstl/core /WEB-INF/lib/c.tld  

Per favore fatemi sapere se avete ancora problemi.

Se stai usando maven, il tag di pom dovrebbe essere simile a:

   javax.servlet servlet-api 2.5   javax.servlet.jsp.jstl javax.servlet.jsp.jstl-api 1.2.1   taglibs standard 1.1.2   

Per me funziona.

Bene, ho letto questo post e sembra che non sia abbastanza buono per risolvere questo problema.

L’applicazione basata sulla molla sul tomcat 8 non funzionerà.

Ecco la soluzione

Passaggio 1 ⇒ Aggiungi la seguente dipendenza nel tuo pom.xml

   javax.servlet javax.servlet-api 3.1.0   javax.servlet.jsp javax.servlet.jsp-api 2.3.1   javax.servlet jstl 1.2  

Passaggio 2 ⇒ Aggiungi tutte le seguenti due istruzioni nella pagina JSP, assicurati di utilizzare l’attributo isELIgnored = “false” nel tag <% @ 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"%> 

Passaggio 3 ⇒ Rimuovi tutte le altre configurazioni che hai eseguito fino ad ora in web.xml o altrove 🙂

Passaggio 4 ⇒ Pulire Tomcat e riavviare Tomcat.

Nota a margine ⇒ In realtà, JSTL funziona solo con specifiche Servlet 3.x su Tomcat 8.

 [http://www.kriblog.com/j2ee/jsp/jstl-with-spring-4-on-tomcat-8.html] 

Per farlo funzionare:

Aggiungi jstl e i file jar standard alla tua libreria.

Spero che sia d’aiuto.. 🙂

aggiungi le dipendenze Maven:

  jstl jstl 1.2 compile   taglibs standard 1.1.2 compile  

Basta scaricare javax.servlet.jsp.jstl.jar e aggiungere al percorso di compilazione e WEB-INF/lib se si sta semplicemente sviluppando un’applicazione web dynamic.

Quando sviluppi un’applicazione web dynamic usando maven, aggiungi la dipendenza javax.servlet.jsp.jstl nel file pom.

Grazie

nirmalrajsanjeev

Assicurati che entrambi i vasi sottostanti siano presenti nel percorso di costruzione:

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

Le dipendenze Maven sono:

  javax.servlet.jsp.jstl jstl-api $1.2   taglibs standard 1.1.2  

Il download di jstl-1.2.jar invece di jstl.jar risolve il problema