Я искал несколько других потоков этой ошибки, большинство из них либо имели неправильную/отсутствующую зависимость maven, либо имели неправильный uri в своем taglib.
Насколько я знаю, у меня все правильно, и мое приложение продолжает терпеть неудачу, как только я доберусь до jsp, где я использую JSTL.
Это 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>
Насколько мне известно, из сервлета api 2.4 вам нужен jstl 1.2, который у меня есть, поэтому я действительно не вижу проблемы здесь...
EDIT: Я вижу, что этот вопрос был отмечен как дубликат, хотя это не так. taglib
вопрос был решен путем исправления uri taglib
, здесь это был случай добавления jstl в папку tomcat lib
Я добавил jstl-1.2.jar
в папку tomcat/lib
. Как коту не имеет JSTL банки и поставив свой объем на provided
, я должен был убедиться, что мой контейнер (кот) имела соответствующую банку доступна.
Хотя я не тестировал его, это также должно работать, оставив 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
переместился выше.