Spring MVC. Передача коллекции в jsp
Пробую написать веб-приложение используя Spring MVC и столснулся с проблемой
При передачи любой коллекции в jsp ловится исключение:
java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.pages.films_jsp
и HTTP status 500, но если передаю любой другой объект, не являющийся коллекцией то все норм (передавать именно коллекцию мне необходимо)
films.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>FILMS</title>
</head>
<body>
<h2>Films</h2>
<table>
<tr>
<th>id</th>
<th>title</th>
<th>year</th>
<th>genre</th>
<th>watched</th>
<th>action</th>
</tr>
<c:forEach var="film" items="${filmsList}">
<tr>
<td>${film.id}</td>
<td>${film.title}</td>
<td>${film.year}</td>
<td>${film.genre}</td>
<td>${film.watched}</td>
<td>
<a href="/edit/${film.id}">edit</a>
<a href="/delete/${film.id}">delete</a>
</td>
</tr>
</c:forEach>
</table>
<a href="/add">Add new film</a></body>
</html>
pom.xml:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Filmography</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Filmography</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>19</maven.compiler.source>
<maven.compiler.target>19</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Controller.java:
...
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView allFilms() {
List<Film> films = new ArrayList<>();
films.add(new Film(0, "Пирог", 1991, "Фантастика"));
films.add(new Film(1, "Азарт", 2003, "Драма"));
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("newFilms");
modelAndView.addObject("filmsList", films);
return modelAndView;
}
...