[jsp] Comment installer JSTL? L'uri absolu: http://java.sun.com/jstl/core ne peut pas être résolu


Answers

@BalusC a entièrement raison, mais si vous rencontrez toujours cette exception, cela signifie que vous avez fait quelque chose de mal. Les informations les plus importantes que vous trouverez sur la page d' informations sur les balises SO JSTL .

Fondamentalement, c'est un résumé de ce que vous devez faire pour faire face à cette exception.

  1. Vérifiez la version de servlet dans web.xml: <web-app version="2.5">

  2. Vérifiez si la version JSTL est prise en charge pour cette version de servlet: Servlet version 2.5 utilise JSTL 1.2 ou Servlet version 2.4 utilise JSTL 1.1

  3. Votre conteneur de servlet doit avoir la bibliothèque appropriée ou vous devez l'inclure manuellement dans votre application. Par exemple: JSTL 1.2 requiert jstl-1.2.jar

Que faire avec Tomcat 5 ou 6:

Vous devez inclure le (s) fichier (s) approprié (s) dans votre répertoire WEB-INF / lib (il ne fonctionnera que pour votre application) ou dans le répertoire tomcat / lib (fonctionnera globalement pour toutes les applications).

La dernière chose est un taglib dans vos fichiers jsp. Pour JSTL 1.2, le bon est celui-ci:

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

Je ne sais pas ce que j'ai fait de façon incorrecte, mais je ne peux pas inclure JSTL. J'ai jstl-1.2.jar, mais malheureusement j'ai une exception:

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:315)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:148)
    at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:429)
    at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
    at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1439)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:137)
    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
    at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:170)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Thread.java:619)

J'ai:

  • pom.xml

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>
    
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    
  • web.xml

    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      version="2.5">
    
  • index.jsp

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



J'avais complètement désactivé les outils MAVEN et Spring. Et j'ai dû ajouter le pot suivant pour que mon environnement fonctionne correctement.

  • spring-aop-4.0.3.RELEASE.jar
  • spring-beans-4.0.3.RELEASE.jar (difficile de trouver ce correctif, d'autres org.springframework <3.versions> ne fonctionnaient pas.
  • spring-context-4.0.3.RELEASE.jar
  • spring-core-4.0.3.RELEASE.jar
  • spring-expression-4.0.3.RELEASE.jar
  • spring-web-4.0.3.RELEASE.jar
  • spring-webmvc-4.0.3.RELEASE.jar
  • jstl-1.2.jar

Le pire de tous était jstl-api-1.2.jar et javax-servlet.jsp.jst-api-1.2.1.jar . Ils n'ont tout simplement pas fonctionné.

`jstl-1.2.jar a bien fonctionné.




  1. Télécharger jstl-1.2.jar
  2. Ajoutez cette directive à votre page: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

  3. Collez le fichier JAR dans votre dossier WEB-INF / lib. Cela devrait fonctionner. (Cela a fonctionné pour moi.)




Si vous avez tout essayé mais que cela n'a pas aidé, vous devez redémarrer le serveur. Dans mon cas, j'ai juste oublié de redémarrer Tomcat, après avoir ajouté javax.servlet.jsp.jstl-1.2.1.jar au répertoire lib .




Juste eu le même problème dans Eclipse fixé avec:

rightclick on project->Properties->Deployment Assembly->add Maven Dependencies

quelque chose a expulsé avant, pendant que je éditais mon pom.xml

J'avais tous les fichiers jar nécessaires, taglib uri et web.xml étaient ok




J'ai trouvé une autre raison à ce type d'erreur: dans mon cas, quelqu'un a mis la propriété catalina.properties à la valeur tomcat.util.scan.StandardJarScanFilter.jarsToSkip à * pour éviter les messages d'avertissement de journal, tomcat.util.scan.StandardJarScanFilter.jarsToSkip ainsi l'analyse nécessaire par Tomcat. Le retour à la valeur par défaut de Tomcat et l'ajout d'une liste appropriée de jars à ignorer (sans compter jstl-1.2 ou spring-webmvc) ont résolu le problème.




Related