Я получаю следующую ошибку в приложении spring4 + thymeleaf3, когда пытаюсь показать ошибки проверки в своем шаблоне формы.Spring4 + Thymeleaf3 Проверка формы: bean name # поля не доступны в шаблонах
Neither BindingResult nor plain target object for bean name '#fields' available as request attribute
Моя форма следующая.
<form th:action="@{/user/save}" method="post" th:object="${user}">
<ul th:if="${#fields.hasErrors()}">
<li th:each="err : ${#fields.errors('*')}" th:text="${err}"></li>
</ul>
<div>
<label>Name</label>
<div>
<input type="text" th:field="*{firstName}" placeholder="First Name">
<input type="text" th:field="*{lastName}" placeholder="Last Name">
<div th:if="${#fields.hasErrors('firstName')}" th:errors="${#fields.errors('firstName')}"></div>
<div th:if="${#fields.hasErrors('lastName')}" th:errors="${#fields.errors('lastName')}"></div>
</div>
</div>...
Форма визуализирована для последующего отображения запроса на получение.
@GetMapping("/create")
public String create(ModelMap model) {
model.put("user", new User());
return VIEW_DIR.concat("form");
}
Но это приводит к вышеуказанной ошибке, когда форма отправляется с некоторыми недопустимыми полями в следующий метод.
@PostMapping("/save")
public String save(@Valid User user, BindingResult bindingResult, ModelMap model) {
if(bindingResult.hasErrors()) {
return VIEW_DIR.concat("form");
}
userService.save(user);
return "redirect:list";
}
Не могли бы вы показать мне, где ошибка.
Я пробовал, все еще получая ту же ошибку. – Johna
ответ обновлен. пожалуйста, проверьте – mhshimul
Да, вы поняли это. оно работает. – Johna