No se puede encontrar el descriptor de la biblioteca de tags para “http://java.sun.com/jsp/jstl/core”

He incluido esto en la parte superior de mi página JSP:

 

Ya coloqué el archivo JSTL JAR en el directorio WEB-INF/lib . Pero aún así, el JSP no puede resolver el taglib. Me sale el siguiente error:

No se puede encontrar el descriptor de la biblioteca de tags para ” http://java.sun.com/jsp/jstl/core ”

Estoy usando Eclipse Juno y la estructura del proyecto se muestra a continuación:

enter image description here

No se puede encontrar el descriptor de la biblioteca de tags para ” http://java.sun.com/jsp/jstl/core

En función de una de sus preguntas anteriores , está utilizando Tomcat 7. En ese caso, necesita JSTL 1.2. Sin embargo, tienes allí un archivo jstl.jar mientras que JSTL 1.2 tiene claramente el número de versión incluido como jstl-1.2.jar . El único nombre de archivo jstl.jar es típico para JSTL 1.0 y 1.1. Esta versión requiere un archivo .jar standard.jar en /WEB-INF/lib que contenga los archivos de TLD necesarios. Sin embargo, en su caso particular, el standard.jar falta claramente en /WEB-INF/lib y esa es exactamente la razón por la cual el URI taglib no se pudo resolver.

Para resolver esto, debe eliminar el archivo JAR incorrecto, descargar jstl-1.2.jar y soltarlo en su totalidad en /WEB-INF/lib . Eso es todo. No necesita extraerlo ni alterar la ruta de comstackción del proyecto.

No olvides eliminar ese archivo c.tld suelto también. Absolutamente no pertenece allí. De hecho, esto se instruye en algunos tutoriales o respuestas pobres en Internet. Este es un mito causado por un gran malentendido y una mala configuración. Nunca es necesario tener un archivo JSTL TLD suelto en el classpath, tampoco en las versiones anteriores de JSTL.

En caso de que estés utilizando Maven, utiliza la siguiente coordenada:

  javax.servlet jstl 1.2  

También debe asegurarse de que su web.xml se declare conforme al menos al Servlet 2.4 y, por lo tanto, no como Servlet 2.3 o anterior. De lo contrario, las expresiones EL dentro de las tags JSTL a su vez no funcionarían. Elija la versión más alta que coincida con su contenedor de destino y asegúrese de que no tiene un < !DOCTYPE> en ningún lugar de su web.xml . Aquí hay un ejemplo compatible de Servlet 3.0 (Tomcat 7):

 < ?xml version="1.0" encoding="UTF-8"?>    

Ver también:

  • Nuestra página wiki de JSTL (puede acceder allí colocando el mouse sobre jstl y haciendo clic en el enlace de información )
  • ¿Cómo instalar JSTL? El uri absoluto: http://java.sun.com/jstl/core no se puede resolver

El URI depende de la versión de JSTL que esté utilizando. Para la versión 1.0, use:

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

y para 1.1 (y posterior), necesita usar:

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

Tuve el mismo problema y, a pesar de tener jstl

  javax.servlet jstl 1.2  

Tuve que agregar ‘estándar’ también:

  taglibs standard 1.1.2  

Además, como se menciona en la publicación anterior:

también debe configurar esto en web.xml. Consulte el código a continuación.

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

Por favor, avíseme si aún tiene algún problema.

Si está utilizando maven, la etiqueta su pom debería verse así:

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

Esto funciona para mi.

Bueno, he leído esta publicación y parece que no es lo suficientemente buena para solucionar este problema.

La aplicación basada en Spring en el tomcat 8 no funcionará.

Aquí está la solución

Paso 1 ⇒ Agregue la siguiente dependencia en su 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  

Paso 2 ⇒ Agregue todas las siguientes dos instrucciones en su página JSP, asegúrese de estar utilizando el atributo isELIgnored = “false” en la etiqueta < % @ 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"%> 

Paso 3 ⇒ Elimine todas las demás configuraciones que haya realizado hasta ahora en web.xml o en otro lugar 🙂

Paso 4 ⇒ Limpia el Tomcat y reinicia Tomcat.

Nota al margen ⇒ En realidad, JSTL funcionará con solo 3.x especificaciones del servlet en Tomcat 8.

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

Para que funcione:

Agregue jstl y archivos jar estándar a su biblioteca.

Espero eso ayude.. 🙂

agregar las dependencias maven:

  jstl jstl 1.2 compile   taglibs standard 1.1.2 compile  

Simplemente descargue javax.servlet.jsp.jstl.jar y agréguelo a su ruta de comstackción y WEB-INF/lib si simplemente desarrolla una aplicación web dinámica.

Cuando desarrolle una aplicación web dinámica utilizando maven, agregue la dependencia javax.servlet.jsp.jstl en el archivo pom.

Gracias

nirmalrajsanjeev

Asegúrese de que los dos jar inferiores estén presentes en la ruta de comstackción:

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

Las dependencias de Maven son:

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

La descarga de jstl-1.2.jar en lugar de jstl.jar resuelve el problema