java - net - jstl download
No se puede encontrar el descriptor de la biblioteca de etiquetas para "http://java.sun.com/jsp/jstl/core" (11)
No se puede encontrar el descriptor de la biblioteca de etiquetas 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 compilació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:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
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 etiquetas 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"?>
<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>
Ver también:
- Nuestra página wiki de JSTL (puede acceder allí jstl 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
He incluido esto en la parte superior de mi página JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
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 etiquetas para " http://java.sun.com/jsp/jstl/core "
Estoy usando Eclipse Juno y la estructura del proyecto se muestra a continuación:
Asegúrese de que los dos jar inferiores estén presentes en la ruta de compilación:
- standard-1.1.2.jar
- jstl-api-1.2.jar
Las dependencias de Maven son:
<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
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
<!-- 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>
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]
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
La descarga de jstl-1.2.jar en lugar de jstl.jar resuelve el problema
Para que funcione:
Agregue jstl y archivos jar estándar a su biblioteca.
Espero eso ayude.. :)
Si está utilizando maven, la etiqueta <dependencies>
su pom debería verse así:
<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>
Esto funciona para mi.
Simplemente descargue javax.servlet.jsp.jstl.jar y agréguelo a su ruta de compilació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
Tuve el mismo problema y, a pesar de tener jstl
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Tuve que agregar ''estándar'' también:
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
Además, como se menciona en la publicación anterior:
- para el uso de la versión 1.0: http://java.sun.com/jstl/core
- para 1.1 (y posterior) uso: http://java.sun.com/jsp/jstl/core
agregar las dependencias 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>
también debe configurar esto en web.xml. Consulte el código a continuación.
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/lib/c.tld</taglib-location>
</taglib>
Por favor, avíseme si aún tiene algún problema.