servlet mvc mkyong formulario form example ejemplo docs spring jsp spring-mvc jstl

spring - mvc - La declaración Sun JSTL taglib falla con "No se puede encontrar el descriptor de biblioteca de etiquetas"



spring mvc jsp (8)

Esta es una solución para las personas que no usan maven. También necesita agregar standard.jar a su carpeta lib para que funcione la biblioteca de etiquetas núcleo. Funciona para jstl versión 1.1.

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

Estoy usando una página JSP para imprimir una matriz de valores. Estoy intentando usar JSTL <c:forEach> para esto.

<c:forEach items="${objects}" var="object"> <td>${object.name} </td> </c:forEach>

El problema es mi declaración JSTL taglib:

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

El IDE muestra un error en esta línea

No se puede encontrar el descriptor de la biblioteca de etiquetas.

Muchos de los foros apuntan al antiguo sitio Sun para descargar las bibliotecas JSTL. Ahora, todos estos enlaces apuntan a la página de inicio de Oracle sin enlace a los binarios de JSTL. Esto me lleva a creer que hay un enfoque más nuevo para lograr esto.


Estaba obteniendo este problema con un proyecto maven usando el eclipse IDE. Cambié el ''Orden y exportación'' en la ruta de compilación del proyecto poniendo las dependencias Maven primero y el error desapareció. Supongo que es porque el eclipse IDE estaba construyendo inicialmente mi fuente de aplicación antes de cargar las bibliotecas Maven.


Estaba teniendo el mismo problema en Spring Tool Suite 3.2 y cambió la versión de jstl a 1.2 (desde 1.1.2) manualmente al agregarla a la lista de dependencias, y el error desapareció.


Para resolver este problema:

  1. El jstl jar debe estar en tu classpath. Si está utilizando maven , agregue una dependencia a jstl en su pom.xml usando el fragmento provisto here . Si no está utilizando maven , descargue el jstl jar desde here y despliéguelo en su WEB-INF/lib .

  2. Asegúrese de tener la siguiente directiva taglib en la parte superior de su jsp :

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



Si usa el servidor Tomcat, le sugiero que ponga el archivo JSTL .jar en la carpeta lib de Tomcat. Al hacer esto, tendrá acceso a JSTL en todos sus proyectos web de forma automática (con la declaración de taglib en archivos .jsp, por supuesto).


Simplemente consulte nuestra propia página wiki de JSTL para obtener los enlaces de descarga adecuados e instrucciones de instalación claras como el cristal.

Coloque el mouse encima de la etiqueta [jstl] que le hará la pregunta usted mismo hasta que aparezca un recuadro negro y haga clic en el enlace de información .

Luego deslice un poco hacia abajo a la información de las versiones JSTL hasta que encuentre el enlace de descarga a JSTL 1.2 (o 1.2.1).

Finalmente, simplemente coloque exactamente ese archivo en webapp /WEB-INF/lib .

De esta forma, la declaración de taglib ya no debe dar ningún error y las etiquetas y funciones de JSTL deberían funcionar.


Solo quiero compartir mi experiencia. Tengo el mismo problema sobre jstl usando maven. Lo resolví agregando dos dependencias.

<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>