JSTL nasıl kurulur? Mutlak urı: http://java.sun.com/jstl/core çözümlenemeyen
Yanlış ne yaptım bilmiyorum, ama JSTL dahil edemem. Jstl-1.2.jar ama ne yazık ki ben istisna var:
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)
Var:
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>
CEVAP
org.apache.jasper.JasperException: mutlak urı: http://java.sun.com/jstl/core ya web.xml ya da jar dosyaları ile dağıtılan çözülmesi uygulama olamaz
Bu URI için JSTL 1.0, ama sen aslında kullanarak JSTL 1.2 kullandığı URI ile bir ek /jsp
yol (çünkü JSTL, kim icat etti EL ifadeleri beri sürüm 1.1 entegre bir parçası olarak JSP için share/yeniden EL düz mantık JSP de).
Yani, buna göre taglib URİ düzeltme:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Daha fazla POM da taglibs:standard
ile Apache JSTL 1.1 uygulama belirtir. Bu zaten 1.2 API impl javax.servlet:jstl
ile birlikte JSTL zaman gereksiz ve hatta tehlikeli. Sadecesadeceaşağıdaki bağımlılık Tomcat hedefli web içinde: JSTL için bunu yapmak gerekir
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Non-Maven kullanıcılar jstl-1.2.jar tek dosya bırakarak aynı elde edebilirsiniz /WEB-INF/lib
web Uygulama Projesi (yap . klasör ^strong>değilbırak standard.jar ya da herhangi bir gevşek .karşılık orada dosyalar!).
Ayrıca web.xml
uygun ilan olduğundan emin olunen azından2.4 ve böylece olarak sunucu uygulaması 2.3 veya daha eski Sunucu uygulaması. JSTL etiketleri içinde başka ifadeler EL ele çalışmak için başarısız olur. En yüksek sürüm hedef konteyner eşleşen ve <!DOCTYPE>
bir yerde web.xml
senin içinde yok emin olun seçin. İşte bir Sunucu uygulaması 3.0 (Tomcat 7 uyumlu) örnek:
<?xml version="1.0" encoding="UTF-8"?>
<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_3_0.xsd"
version="3.0">
<!-- Config here. -->
</web-app>
Ayrıca Bkz:
- JSTL core taglib documentation (sağ taglib bu Kodu için)
- JSTL tag info page (JSTL için indirme bağlantıları ve
web.xml
örnekler)
Nasıl JSTL-eğer başka seçeneği kullanm...
Nasıl iki mutlak yol (veya URL) Java g...
Nasıl HTTP yanıt kodu almak için Java'...
Nasıl Java'da bir string olarak http y...
Nasıl JSTL ile bir dizi ilk öğe seçmek...