SpringBoot + Thymeleaf + Hibernate Validator не выдает ошибку валидации

Создаю pet-проект, столкнулся с проблемой, что при не прохождении валидации thymeleaf не выдает ошибку валидации(редирект на страницу ввода работает исправно). Смотрел документацию spring, thymeleaf.

Мой контроллер:

    @Controller
public class ProjectController {

    @Autowired
    private ProjectDaoService projectDaoService;
    
        @GetMapping("/addProjects") // добавление объекта
        public String addProject(Model model){
        model.addAttribute("project", new Project());
        Map <String, String> allTypes = new HashMap<>(); // это для выпадающего списка, можно не обращать внимания, данный код работает
        allTypes.put("Duration", "Duration");
        allTypes.put("Quantity", "Quantity");
        model.addAttribute("allTypes", allTypes);
        return "addProject";
    }

    @PostMapping("/resultOfAddProject")
    public String resultOfAddProject(@Valid @ModelAttribute("project") Project project
            , BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            return "redirect:/addProjects";
        }
        projectDaoService.saveProject(project);
        return "redirect:/";
    }

Мой объект, поле которого заполняю

@Entity
@Table(name ="project")
@Data
public class Project {
...
@Column(name = "project_name")
    @NotBlank(message = "some problems")
    private String name;
}

Страница с формой, которая не работает

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:form="http://www.springframework.org/tags/form">
<head>
        <meta charset="utf-8">
<title>Добавление проекта</title>
</head>
<body>

<form action="/resultOfAddProject" th:action="@{/resultOfAddProject}" th:object="${project}" method="post">
        Имя проекта<br>
        <input type="text" th:field="*{name}"/>
        <span th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Name Error</span>

        <br><br>
        Тип проекта <select th:field="*{type}"/>

        <option value="">Выберите тип проекта</option>
        <option th:each="type : ${allTypes}"
                th:value="${type.key}" th:text="${type.value}"></option>
        </select>
        <br><br>
        <input type="submit">
</form>

</body>
</html>

Зависимости в gradle

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
   // implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'org.postgresql:postgresql'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.1.6.Final'
}

Ответы (1 шт):

Автор решения: Кирилл Кириллов

Ошибку нашел - в контроллере после проверки на наличие ошибок нужно было возвращать ссылку на контроллер, а я - редиректил, правильный вариант такой:

@PostMapping("/resultOfAddProject")
    public String resultOfAddProject(@Valid @ModelAttribute("project") Project project
            , BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            return "/addProject";
        }
        projectDaoService.saveProject(project);
        return "redirect:/";
    }

Если кто-то умный прочитает это сообщение - объясните почему редирект все ломал?

→ Ссылка