Почему у меня возникает ошибка 400 при использовании Spring/Thymeleaf, если у меня пустые поля?
Поля класса Book:
private int id_book;
@NotEmpty
@Size(min = 2, max = 120, message = "Name should be between 2 and 120 chars")
private String name;
@NotEmpty
@Size(min = 2, max = 120, message = "Author should be between 2 and 120 chars")
private String author;
@Min(value=1700, message = "Age in diapason between 1700 and 2023") @Max(value=2023, message = "Age in diapason between 1700 and 2023")
private int year_book;
private Integer id_person;
Контроллер:
@GetMapping()
public String index(Model model){
model.addAttribute("books", bookDAO.index());
return "/books/index";
}
DAO:
public List index(){
return jdbcTemplate.query("SELECT * FROM book", new BeanPropertyRowMapper<>(Book.class));
}
HTML/Thymeleaf код:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Book list</title>
</head>
<body>
<h1>Book list</h1>
<div th:each="book : ${books}">
<a th:href="@{/books/{id}(id=${book.getId_book()})}" th:text="${book.getName()}">Name</a></div>
<br/>
<a th:href="@{/books/new}">Add new book</a>
</body>
</html>
Проблема: если в значении id_person хранится null, то я получаю ошибку 404.
Я пытался поменять int на Integer, но это не дало результата.
Источник: Stack Overflow на русском