Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 4 / 0
Регистрация: 20.07.2018
Сообщений: 279

Ошибка с библиотекой тегов JSTL

16.10.2023, 23:30. Показов 1391. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте. Хочу использовать jsp страницы в своем проекте и пытаюсь подключить jstl, но получаю ошибку

Cannot resolve taglib with uri http://java.sun.com/jsp/jstl/core

Я использую сервлеты 6й версии, соответственно использую jakarta. Развертываю приложение у себя на локалхосте через jetty плагин. Если честно, я не понимаю как исправить эту ошибку, так как испробовал уже всё, что смог найти в интернете.

pom.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>lab13</artifactId>
  <packaging>war</packaging>
  <properties>
    <maven.compiler.source>20</maven.compiler.source>
    <maven.compiler.target>20</maven.compiler.target>
  </properties>
  <version>1.0-SNAPSHOT</version>
  <name>untitled Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
    <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
      <version>6.0.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api -->
    <dependency>
      <groupId>jakarta.servlet.jsp.jstl</groupId>
      <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
      <version>3.0.0</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>untitled</finalName>
    <plugins>
      <!-- Плагин Jetty -->
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>11.0.17</version>
        <configuration>
          <httpConnector>
            <port>8080</port>
          </httpConnector>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
Сервлет:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package Servlets;
 
import Entity.Person;
import dao.PersonDAO;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
 
import java.io.IOException;
import java.util.ArrayList;
 
@WebServlet("/main-page")
public class MainPageServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PersonDAO personDAO = PersonDAO.getInstance();
        ArrayList<Person> personList = personDAO.getListOfPersons();
        req.setAttribute("personList", personList);
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/jsps/main-page.jsp");
        requestDispatcher.forward(req, resp);
    }
}
Ну и сама страничка main-page.jsp:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%@ page import="java.util.ArrayList" %>
<%@ page import="Entity.Person" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Main page</title>
</head>
<body>
<ul>
    <h3>List of persons</h3>
    <%
        ArrayList<Person> personList = (ArrayList<Person>) request.getAttribute("personList");
        for (Person person : personList) {
            String personName = person.getName();
    %>
    <li><a href="${pageContext.request.contextPath}/person?name=${personName}"><%=personName%>
    </a>
            <%}%>
</ul>
<form action=/new-person">
    <button type=submit>Add new person</button>
</form>
</body>
</html>
Буду очень рад любой помощи, так как желания писать html прямо внутри java кода у меня нет.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2023, 23:30
Ответы с готовыми решениями:

Ошибка подключения jstl к БД
Всем добрый день! Я пытаюсь вывести данные из БД используя jstl. Но всё время выводится ошибка java.lang.AbstractMethodError:...

Jstl ошибка с выводом jsp
&lt;%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/core&quot; prefix=&quot;c&quot; %&gt; &lt;c:out value=&quot;${12+56*2}&quot; /&gt; &lt;dependency&gt; ...

Ошибка при использовании двух переменных JSTL в запросе
Доброго времени суток. Есть следующий код &lt;c:if test=&quot;${not empty param.name_test}&quot; &gt; &lt;c:set var=&quot;values&quot;...

3
Amabile opus
 Аватар для 4eDo
109 / 65 / 25
Регистрация: 08.01.2019
Сообщений: 308
18.10.2023, 09:46
Лучший ответ Сообщение было отмечено _lUserl_ как решение

Решение

А вы искали ошибку отдельно? Потому что яндекс по первому запросу выдаёт ссылку:
Там советуют что-то с зависимостями сотворить (см. спойлер)
Кликните здесь для просмотра всего текста
С этими переименованиями javax, jakarta, glassfish черт ногу сломает. Хоть бы нормальную документацию составили.

В итоге то нужно вместо такой зависимости в Maven:

XML
1
2
3
4
5
6
<dependency>
    <groupId>jakarta.servlet.jsp.jstl</groupId>
    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
    <version>2.0.0</version>
    <scope>provided</scope>
</dependency>
добавить такую:

XML
1
2
3
4
5
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>2.0.0</version>
</dependency>
(ответ дан 11 июл 2021 в 9:59 West Side)


Что касается прочего, то советую вместо jsp смотреть в сторону Thymeleaf. Возможности шире, спринг при этом не обязателен. И извращений меньше.
1
4 / 4 / 0
Регистрация: 20.07.2018
Сообщений: 279
18.10.2023, 17:50  [ТС]
Действительно помогло, спасибо. Да, искал ошибку отдельно, но, кажется это решение я пропустил, даже не знаю почему.
Цитата Сообщение от 4eDo Посмотреть сообщение
Что касается прочего, то советую вместо jsp смотреть в сторону Thymeleaf
Здравый совет. Я работал с Thymeleaf, но тут решил использовать jsp, чтобы вспомнить его ну и заполнить пробелы)
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
21.10.2023, 20:30
Цитата Сообщение от 4eDo Посмотреть сообщение
Хоть бы нормальную документацию составили.
Там шикарная документация
https://jakarta.ee/specifications/
Конкретно по JSTL
https://jakarta.ee/specificati... s-spec-2.0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2023, 20:30
Помогаю со студенческими работами здесь

Взаимодействие с библиотекой. Асинхронная обработка массивов данных библиотекой
Здравствуйте, наверное уже надоел с своими вопросами, но я всё равно с вопросом. Допустим, что я зажмурился и решил всё таки написать...

Ошибка с библиотекой
При запуске кода выдаёт ошибку продемонстрированную на картинке. Вот сам код: from matplotlib import gridspec import pylab ...

Ошибка с библиотекой time.h
Добрый день форумчане, столкнулся с проблемой связанной с библиотекой time.h. Хочу написать автомобильный спидометр. В дальнейшем собрать...

ошибка с библиотекой greenfoot
у меня не может добавиться библиотека greenfot в intellij Idea, пишет ошибку Build file 'C:\Fool\build.gradle' line: 30 A...

Ошибка с библиотекой userenv.dll
Добрый вечер! Возникла следующая ошибка. Невозможно открыть или установить браузер, установить антивирусник и т.д. Откат системы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru