net java eclipse tomcat jstl

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:

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:

  1. standard-1.1.2.jar
  2. 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:


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.