Solucionado (ver solución)
Solucionado
(ver solución)
11
respuestas

DUDAS SOBRE TAGLIB QUE NO SE RECONOCE Y SOBRE LIBRERIAS

Hola, que tal, en el siguiente codigo la primera linea queda en color negro y Eclipse no reconoce la taglib. Ya he probado de todo: he cerrado la pestaña, la he vuelto a abrir, he reiniciado Eclipse, he actualizado eclipse, he comprobado las configuraciones de ambiente del servidor Tomcat y las he cambiado una y otra vez. Quiza les sea de utilidad para ayudarme saber que la version de Java que tengo instalado es la 11 y la version de Tomcat es la 10.1, mientras que en la carpeta WEB.INF/lib tengo los jars "jakarta.servlet.jsp.jstl-2.0.0.jar", "jakarta.servlet.jsp.jstl-api-2.0.0.jar" y "javax.servlet.jar"; aprovecho para consultar tambien si este utimo jar es necesario instalarlo y por que razon, ya que en el video correspondiente del curso no se indica que se debe instalar mientras que en la seccion de discord correspondiente en "preguntas frecuentes" por el contrario se aconseja instalar esta libreria mas no se dice nada respecto de los otros dos jars.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:url value="/nuevaEmpresa">

<form action="/gerenciador/nuevaEmpresa" method="post">

    Nombre Empresa: <input type="text" name="nombre"/>

    <input type="submit"/>

</form>



</body>
</html>

Cualquier orientacion sera bienvenida. ¡Muchas gracias!

11 respuestas

Tengo el mismo problema.

Pudiste resolverlo?

Hola, que tal Gustavo. No, aun no pude resolver el error. Si llego a dar con la solución la compartiré.

Saludos!

¡Hola Estudiante!

Por lo que describes, parece que el problema está en la línea donde se encuentra la taglib. En lugar de utilizar la URL antigua "http://java.sun.com/jsp/jstl/core", utiliza la nueva URL "http://xmlns.jcp.org/jsp/jstl/core".

En cuanto a las librerías, el jar "javax.servlet.jar" es necesario para poder utilizar las clases y interfaces de Servlets, mientras que los jars "jakarta.servlet.jsp.jstl-2.0.0.jar" y "jakarta.servlet.jsp.jstl-api-2.0.0.jar" son necesarios para utilizar las librerías de JSTL.

Espero que esto te ayude a solucionar el problema. Si tienes alguna otra duda, no dudes en preguntar. ¡Espero haber ayudado y buenos estudios!

¡Hola Genesis!. La solucion sugerida con relacion a la taglib no funcionó El codigo quedo asi:

<%@ taglib uri="http://xmlns.jcp.org/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:url value="/nuevaEmpresa">

<form action="/gerenciador/nuevaEmpresa" method="post">

    Nombre Empresa: <input type="text" name="nombre"/>

    <input type="submit"/>

</form>



</body>
</html>

Pero la primera linea sigue en color negro, es decir que no se reconoce la taglib y aparece el siguiente mensaje "Multiple annotations found at this line:

Aclaro que ya probe cerrar la pestaña y volver a abrirla y tambien probé con reiniciar Eclipse, en ambos casos sin ningun resultado.

Cualquier orientación sera bienvenida..

¡Muchas gracias!

¡Saludos!.

Hola Jorge, en este caso el mensaje de error indica que se ha utilizado un carácter no válido en la cadena de texto <%@ taglib uri="http://xmlns.jcp.org/jsp/jstl/core" prefix="c"%>.

Esto probablemente se deba a que el código está escrito en un archivo JSP y el archivo JSP no está siendo procesado por un contenedor JSP. Los contenedores JSP son responsables de interpretar el código JSP y traducirlo en un Servlet.

Generalmente el valor predeterminado del proyecto servlet es que los archivos .JAR de terceros (bibliotecas no nativas) estén en la carpeta WEB-INF/lib. Si están allí, el reconocimiento es automático, no es necesario indicarlo en el classpath (como hacemos con el conector MySQL, por ejemplo). Sin embargo, no está sucediendo, debido a un error de Eclipse o un error de la versión de la biblioteca. Tal vez en tu caso el error se deba a que no está encontrando el archivo JSP en la ruta correcta

Puedes intentar agregar la biblioteca JSTL a tu proyecto en Eclipse siguiendo estos pasos:

  • Haz clic con el botón derecho en tu proyecto en el Package Explorer y selecciona "Properties".
  • En la ventana "Properties", selecciona "Java Build Path" en el menú de la izquierda.
  • En la pestaña "Libraries", haz clic en el botón "Add Library".
  • Selecciona "User Library" y haz clic en "Next".
  • Haz clic en el botón "User Libraries" y luego en "New".
  • Nombra la biblioteca como "JSTL" (o cualquier otro nombre de tu elección) y haz clic en "OK".
  • Con la biblioteca "JSTL" seleccionada, haz clic en "Add JARs".
  • Ve a la carpeta donde colocaste los archivos JAR de la biblioteca JSTL y selecciónalos. Haz clic en "OK" para agregarlos a la biblioteca.
  • Haz clic en "OK" nuevamente para cerrar la ventana "User Libraries".
  • Ahora selecciona la biblioteca "JSTL" en la ventana "Add Library" y haz clic en "Finish".
  • Haz clic en "OK" para cerrar la ventana "Properties".
  • Después de seguir estos pasos, intenta ejecutar el proyecto nuevamente.

Hola Genesys. He seguido los pasos que sugeriste y el problema persiste.

La primera del codigo sigue apareciendo en color negro, es decir que no se reconoce la taglib y aparece el siguiente mensaje "Multiple annotations found at this line:

Invalid character used in text string (<%@ taglib uri="http://xmlns.jcp.org/jsp/jstl/core" prefix="c"%> ).- Invalid text string (<%@ taglib uri="http://xmlns.jcp.org/jsp/jstl/core" prefix="c"%> )". Aclaro que ya probe cerrar la pestaña y volver a abrirla y tambien probé con reiniciar Eclipse, en ambos casos sin ningun resultado.

Cualquier orientación será bienvenida..

¡Muchas gracias!

¡Saludos!.

Hola, alumno,

Es posible que Eclipse no reconozca esta línea porque es posible que la biblioteca JSTL (biblioteca de etiquetas estándar de JavaServer Pages) no esté configurada correctamente en el proyecto o entorno de desarrollo.

Para resolver esto, verifique que la biblioteca JSTL esté presente en el proyecto y que se haya agregado correctamente al classpath. Además, verifique que la versión de la biblioteca sea correcta y coincida con la versión especificada en el taglib.

Otra posible solución es configurar el entorno de desarrollo para que reconozca la biblioteca JSTL. Para eso, es necesario descargar el archivo .jar correspondiente a la librería y agregarlo al classpath del servidor de aplicaciones.

Estimados profesores: Tengo el mismo problema y he intentado las soluciones sugeridas pero el problema persiste.

Estimados, sigo teniendo el mismo error pese a implementar todo lo sugerido. Cualquier orientacion sera bienvenida.

solución!

Lamento escuchar que aún están experimentando el mismo error a pesar de intentar las soluciones sugeridas. Aquí hay algunas otras sugerencias que podrían probar para resolver el problema:

  • Verifica la configuración del archivo web.xml: Asegúrate de que el archivo web.xml en tu proyecto contenga la configuración adecuada para la biblioteca JSTL. Debería haber una sección para la configuración de la biblioteca JSTL similar a esta:
<jsp-config>
  <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/lib/jstl-1.2.jar</taglib-location>
  </taglib>
</jsp-config>

Asegúrate de que la ubicación del archivo JAR de la biblioteca JSTL sea correcta.

  • Verifica la estructura de directorios del proyecto: Asegúrate de que los archivos JAR de la biblioteca JSTL estén en la ubicación correcta dentro del proyecto. Deberían estar en la carpeta "WEB-INF/lib" en la raíz del proyecto.

  • Verifica la versión de la biblioteca JSTL: Asegúrate de que estás utilizando la versión correcta de la biblioteca JSTL que coincide con la versión especificada en el taglib. En tu caso, estás utilizando las versiones "jakarta.servlet.jsp.jstl-2.0.0.jar" y "jakarta.servlet.jsp.jstl-api-2.0.0.jar". Verifica que estas versiones sean compatibles con la versión de Tomcat que estás utilizando (Tomcat 10.1).

Si después de probar estas sugerencias aún no puedes resolver el problema, podría ser útil revisar la documentación específica de tu entorno de desarrollo y versión de Tomcat para obtener más información sobre la configuración correcta de la biblioteca JSTL.

Espero que estas sugerencias te ayuden a solucionar el problema. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Buena suerte!

Gracias al incluír este código en el archivo web.xml ya me reconoce el c:forEach

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad