java jsp tomcat intellij-idea jstl

java - IntelliJ y JSP/JSTL no pueden resolver taglib para JSTL en tomcat7



intellij-idea (4)

En primer lugar, mi código JSTl funciona en mi servidor porque tengo el archivo Jar adecuado en la carpeta Lib en tomcat7. Esto es realmente un problema de IDEA. Mis preguntas se reducen a donde puse el mismo archivo jar en mi directorio de archivos dentro de IntelliJ.

Me he encontrado con un error en IntelliJ y JSTL.

Mi problema es que cuando uso

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

Resulta en No se puede resolver taglib con uri. He probado diferentes archivos Jar y sé que tengo que corregir la versión de mi servlet.

Estoy ejecutando tomcat7 en Ubuntu Server 15.04 e IntelliJ 14.1.3.

He intentado importar el archivo jar a través de la Estructura del proyecto, e incluirlo en varios lugares, pero sigue siendo el mismo error después de reconstruir el proyecto y cerrar y volver a abrir IDEA.

Este código de muestra se ejecuta cuando se implementa en tomcat pero IntelliJ sigue dando errores.

<table border="1"> <c:forEach var="a" items="${data}"> <tr> <td>${a}</td> </tr> </c:forEach> </table> <c:forEach begin="0" end="255" var="i"> <span style=''color:rgb( <c:out value="${i}"/>, <c:out value="${i}"/>, <c:out value="${i}"/>);''> <c:out value="${i}"/></span> <br /> </c:forEach>

Me gustaría saber cómo evitar que IntelliJ dé errores en mi sintaxis aunque el código funcione.

He leído JSTL en IntelliJ da errores en JSP

y

https://www.jetbrains.com/idea/features/jsp_editor.html

Aún sin suerte.


Agregue la siguiente dependencia a su pom.xml

<!-- https://mvnrepository.com/artifact/javax.servlet/jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>


Primero agregue esto a la parte superior de su archivo ".jsp":

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

Todavía dará un error de sintaxis, pero puede solucionarlo agregando "javax.servlet: jstl: 1.2" (sin comillas) como una dependencia del módulo. Para hacer eso, sigue estos pasos:

  1. Haga clic en el nombre de su proyecto y presione "F4" para que aparezca el cuadro de diálogo de configuración del módulo.
  2. Luego vaya a la pestaña "dependencias" en la sección "módulos".
  3. Haga clic en el ícono verde "+" -> biblioteca -> De Maven.
  4. Busque javax.servlet:jstl:1.2 en la barra de búsqueda y presione OK y descargará y agregará la biblioteca mencionada anteriormente como un módulo.
  5. Ahora no debería tener ningún tipo de error de sintaxis.

Si está utilizando Maven, agregue el siguiente código en pom.xml dentro de la etiqueta <dependencies></dependencies>

<!-- https://mvnrepository.com/artifact/javax.servlet/jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>


Si sigue recibiendo errores después de seguir las instrucciones proporcionadas por Shams UI Azeem, es posible que deba agregar la biblioteca JSTL al artefacto explotado WAR. Para hacer esto:

  1. Ir a la estructura del proyecto. En Configuración del proyecto, seleccione Artefactos. En la parte inferior del cuadro de menú, puede haber un mensaje que menciona que la biblioteca JSTL utilizada no está incluida en WAR.

2a. Mensaje visible. Si se muestra el mensaje, debería haber un botón Reparar junto a él. Haga clic en este botón Reparar. Seleccione "agregar javax.servlet:jstl:1.2 al artefacto".

2b. Mensaje no visible. Si el mensaje no se muestra, mire arriba para ver si javax.servet:jstl:1.2 (Project Library) está debajo de la columna Elementos disponibles. Si es así, haga clic derecho y seleccione "Poner en / WEB-INF / lib".

Si está trabajando con Maven, el mensaje Fix no aparecerá, aunque aún deberá hacerlo.