Tout d'abord, mon code JSTl fonctionne sur mon serveur car j'ai le bon fichier Jar dans le dossier Lib de Tomcat7. C'est vraiment un problème IDEA. Mes questions se résument à l'endroit où j'ai mis le même fichier jar dans mon répertoire de fichiers dans IntelliJ.
J'ai rencontré une erreur dans IntelliJ et JSTL.
Mon problème est que lorsque j'utilise
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core" %>
Il en résulte Ne peut pas résoudre taglib avec uri. J'ai essayé différents fichiers Jar et je sais que je dois corriger la version de ma servlet.
Im exécutant Tomcat7 sur Ubuntu Server 15.04 et IntelliJ 14.1.3.
J'ai essayé d'importer le fichier jar via la structure du projet et de l'inclure à divers endroits, mais toujours la même erreur après la reconstruction du projet, la fermeture et la réouverture de l'IDEA.
Cet exemple de code s'exécute lorsqu'il est déployé sur Tomcat, mais IntelliJ continue de donner des erreurs.
<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>
Je voudrais savoir comment empêcher IntelliJ de donner des erreurs sur ma syntaxe même si le code fonctionne.
J'ai lu JSTL dans IntelliJ donne des erreurs dans JSP
et
https://www.jetbrains.com/idea/features/jsp_editor.html
Toujours pas de chance.
Ajoutez d'abord ceci en haut de votre .jsp
fichier:
<%@ taglib uri="http://Java.Sun.com/jsp/jstl/core" prefix="c" %>
Cela donnera toujours une erreur de syntaxe, mais vous pouvez corriger cela en ajoutant javax.servlet:jstl:1.2
comme dépendance de module. Pour ce faire, procédez comme suit:
dependencies
dans la section modules
.+
icône -> bibliothèque -> Depuis Maven.javax.servlet:jstl:1.2
dans la barre de recherche et appuyez sur OK pour télécharger et ajouter la bibliothèque mentionnée ci-dessus en tant que module.Si vous utilisez maven, ajoutez le code suivant dans pom.xml à l'intérieur du <dependencies></dependencies>
tag
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Si vous obtenez toujours des erreurs après avoir suivi les instructions fournies par Shams UI Azeem, vous devrez peut-être ajouter la bibliothèque JSTL à l'artefact WAR éclaté. Pour faire ça:
2a. Message visible. Si le message s'affiche, il devrait y avoir un bouton Fix à côté. Cliquez sur ce bouton Fix. Sélectionnez "ajouter javax.servlet:jstl:1.2
À l'artefact".
2b. Message non visible. Si le message ne s'affiche pas, regardez ci-dessus pour voir si la javax.servet:jstl:1.2 (Project Library)
se trouve sous la colonne Éléments disponibles. Si c'est le cas, faites un clic droit dessus et sélectionnez "Mettre dans/WEB-INF/lib".
Si vous travaillez avec Maven, le message Fix n'apparaîtra pas, mais vous devrez toujours le faire.
Ajoutez la dépendance ci-dessous à votre pom.xml
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>