Spring Boot не работает вывод ошибки валидации на экран

Рейтинг: 1Ответов: 0Опубликовано: 13.02.2023

Сделала форму валидации для 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>

Ответы

Ответов пока нет.