我遇到Tomcat 5.5和Java EE webapp库的问题。我正在使用Gradle进行依赖管理,我正在使用JSP API 2.0,Servlet API 2.4和JSTL 1.1。
我收到了org.apache.jasper.JasperException: 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
根据http://www.mularien.com/blog/2008/04/24/how-to-reference-and-use-jstl-in-your-web-application/,这意味着缺少JSTL实现。
这是我的web.xml的样子:
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns j2ee/web-app_2_4.xsd"
version="2.4">
<小时/> 这就是我引用JSTL库的方式:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<小时/> Gradle构建文件中的相应依赖项:
providedCompile group: 'javax.servlet', name: 'servlet-api', version: '2.4'
providedCompile group: 'javax.servlet', name: 'jsp-api', version: '2.0'
compile group: 'javax.servlet', name: 'jstl', version: '1.1.+'
<小时/> 在Tomcat / common / libs中,我有这些罐子:
Tomcat 5.5\common\lib
23.09.2002 12:23 45˙386 activation.jar
05.03.2007 17:26 112˙341 commons-el.jar
05.03.2007 17:26 1˙213˙732 jasper-compiler-jdt.jar
05.03.2007 17:26 408˙133 jasper-compiler.jar
05.03.2007 17:26 76˙844 jasper-runtime.jar
05.03.2007 17:26 50˙952 jsp-api.jar
29.08.2005 22:28 358˙085 LOG4J-1.2.12.JAR
12.10.2004 13:20 347˙137 mail-1.3.2.jar
05.03.2007 17:26 163˙490 naming-factory-dbcp.jar
05.03.2007 17:26 31˙963 naming-factory.jar
05.03.2007 17:26 47˙730 naming-resources.jar
05.03.2007 17:26 99˙235 servlet-api.jar
<小时/> 在构建的WAR中,唯一相关的JAR文件是
jstl-1.1.2.jar
答案 0 :(得分:4)
答案 1 :(得分:1)
我想你可以下载c.tld(我有它,如果你愿意的话,我可以在任何地方为你上传)并在web.xml中声明它如下:
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/c.tld</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
</jsp-config>
在jsp中也是如此:
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
答案 2 :(得分:0)
compile "javax.servlet:com.springsource.javax.servlet.jsp.jstl:1.1.2";
此行将为JSTL添加gradle依赖项。