Spring Boot не работает вывод ошибки валидации на экран
Сделала форму валидации для Spring Boot. Ошибки выводятся в консоль(скрин фото)
Но они не выдаются на экран и не происходит правильной переадресации с BindingResult. Прилагаю зависимости, Html, класс и контроллер. Помогите, сломала уже всю голову и ответа нет....
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:form="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Главная страница</title>
<link rel="stylesheet" th:href="@{/main.css}">
</head>
<body>
<div th:replace="layouts/header :: header"></div>
<main class="container">
<h1>Добавить сокращения: </h1>
<div class="form">
<h1>Добавить ссылку</h1>
<form th:object="${links}" th:method="post" th:action="@{/}">
<label for="long_link">Long Link:</label>
<input type="text" id="long_link" th:field="*{long_link}" placeholder="Введите длинную ссылку" >
<div style="color:red" th:if="${#fields.hasErrors('long_link')}" th:errors="*{long_link}"> LongLink Error</div>
<label for="short_link">Short Link:</label>
<input type="text" id="short_link" th:field="*{short_link}" placeholder="Введите короткую ссылку" >
<div style="color:red" th:if="${#fields.hasErrors('short_link')}" th:errors="*{short_link}"> ShortLink Error</div>
<button type="submit">Добавить</button>
</form>
</div>
</main>
<div th:replace="layouts/footer :: footer"></div>
</body>
</html>
package com.fox.links.Models;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
@Entity
public class Links {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@NotBlank(message = "hohoho")
@Size(min = 5)
private String long_link;
@NotBlank(message = "dadada")
private String short_link;
public Links() {
}
public Links(String long_link, String short_link) {
this.long_link = long_link;
this.short_link = short_link;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getLong_link() {
return long_link;
}
public void setLong_link(String long_link) {
this.long_link = long_link;
}
public String getShort_link() {
return short_link;
}
public void setShort_link(String short_link) {
this.short_link = short_link;
}
}
package com.fox.links.Controllers;
import com.fox.links.Models.Links;
import com.fox.links.Repo.LinkRepository;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@Validated
@Controller
@RequestMapping("/")
public class MainController {
@Autowired
LinkRepository linkRepository;
@GetMapping("/")
public String index(Model model) {
Iterable<Links> links = linkRepository.findAll();
model.addAttribute("links", links);
return "index";
}
@GetMapping("/new")
public String newLink(Model model) {
model.addAttribute("links", new Links());
return "new";
}
@PostMapping("/")
public String addLinks(@Valid @ModelAttribute("links") Links links, BindingResult bindingResult, RedirectAttributes RedirectAttr) {
if(bindingResult.hasErrors()){
return "new";
}else{
linkRepository.save(links);
return "redirect:/";}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.fox</groupId>
<artifactId>links</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>links</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>18</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.5.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Источник: Stack Overflow на русском