我搜索了其他几个关于这个错误的线程,其中大多数线程要么有错误/缺失的maven依赖项,要么在标签库中有错误的uri。
据我所知,我的一切都是正确的,一旦我到达使用JSTL的jsp,我的应用程序就会不断失败。
这是我正在使用的标签库:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这些是我的专业依赖
<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文件夹
我已将jstl-1.2.jar
添加到我的tomcat/lib
文件夹中。由于tomcat没有jstl jar,并且通过将我的作用域放在provided
上,我必须确保我的容器(tomcat(有可用的相关jar。
虽然我还没有测试它,但这也应该通过将jstl
jar留在默认的编译范围
从mvnrepository 尝试这个
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
阅读类似的文章在这里
更新版本
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
使用:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
javax.servlet
移至上方。