我在这个错误上搜索了几个其他线程,其中大多数都有错误/缺少maven依赖或者他们的taglib中有错误的uri。
据我所知,我有一切正确,一旦我到达使用JSTL的jsp,我的应用程序仍然失败。
这是我正在使用的taglib:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这些是我的maven依赖
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
据我所知,从servlet api 2.4上你需要jstl 1.2,我有,所以我真的没有看到这里的问题......
编辑:我看到这个问题被标记为重复,但事实并非如此。通过修复taglib
的uri来解决引用问题,这里是将jstl添加到tomcat的lib文件夹的情况
答案 0 :(得分:3)
我将jstl-1.2.jar
添加到我的tomcat/lib
文件夹中。由于tomcat没有jstl jar并将我的范围放在provided
上,我必须确保我的容器(tomcat)有相关的jar。
虽然我还没有对它进行测试,但是这也应该通过将jstl
jar放在默认的编译范围上来实现
答案 1 :(得分:1)
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
阅读类似的帖子here
更新版本
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
答案 2 :(得分:0)
使用:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
javax.servlet
移到了上面。