J'ai lu presque toutes les réponses à cette question sur SO et j'ai essayé plus d'une douzaine de "solutions" différentes mais je n'arrive pas à faire fonctionner JSTL dans une application web de démarrage en utilisant servlet 3.1 dans Tomcat 8.0. Je continue à recevoir cette erreur:Impossible d'obtenir Tomcat 8.0 avec Servlet 3.1 fonctionnant avec JSTL 1.2
The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application.
J'utilise Maven pour construire le projet mais aussi JARs copié manuellement et dans l'espoir qui pourrait aider mais hélas, il n'a pas! J'espère que je suis juste en train de négliger quelque chose de stupide. Quelqu'un peut-il s'il vous plaît dites-moi ce que je fais mal ??
choses que j'ai essayé (pour tous ceux-ci, c'est la ligne inclus dans un simple fichier index.jsp -
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Ajouté la dépendance suivante à mon pom.xml (XML caractères supprimés pour formater mieux)
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
cela met le jstl-1.2.jar dans mon répertoire WEB-INF/lib et je lui ai confirmé qu'il est là quand je Tomcat à déployer - cela ne fonctionne pas
Retirées la dépendance ci-dessus et ajouté ces dépendances par la suggestion (http://www.murraywilliams.com/2011/11/running-jstl-1-2-on-tomcat-7-using-maven/)
<dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> <exclusions> <exclusion> <artifactId>servlet-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> <exclusion> <artifactId>jsp-api</artifactId> <groupId>javax.servlet.jsp</groupId> </exclusion> </exclusions> </dependency>
Cela met deux fichiers JAR supplémentaires dans mon répertoire WEB-INF/lib, un jstl-api-1.2.jar et jstl-impl-1.2.jar, et j'ai confirmé qu'ils sont là quand je déploie sur Tomcat - cela ne fonctionne pas
J'ai également essayé de changer la portée à 'fourni' pour chacune de ces dépendances tout en plaçant le JAR respectifs dans le répertoire lib de Tomcat et redémarré Tomcat et ne fonctionne toujours pas.
Voici ma tête web.xml
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
Quoi qu'il en soit, toute aide est grandement appréciée!
Voulez-vous dire que cela fonctionne correctement lorsque vous n'utilisez pas Spring Boot? – BalusC
Non, mais je sais que Spring Boot fait tellement de choses dans les coulisses que j'ai l'impression que son utilisation pourrait être pertinente. Bien que j'aie exécuté un arbre de dépendances sur mon projet et n'ai vu aucun autre JAR tirant dans les JAR JSTL contradictoires. –
Je ne veux pas poster une réponse à cette question car elle ne répond pas vraiment à la question mais j'ai décidé d'utiliser Thymeleaf pour gérer les vues au lieu de JSP. Il n'y a qu'une petite courbe d'apprentissage et il s'intègre très bien avec Spring 4 (et Spring Boot). J'encourage les autres à faire le changement aussi bien! –