Я пытаюсь проверить ввод моей формы, но после ее отправки он не загружает мой метод контроллера, вместо этого он показывает Whitelabel Error Page
с Internal Server Error
и статусом 500
, но с правильными ошибками проверки.Я знаю, что это должно быть проблема с ожидаемыми параметрами моего метода, но пока я собрал правило, просто BindingResult
затем Model
, что я и сделал, но он все равно не запускает мой метод контроллера..
Любые мысли приветствуются.
Метод контроллера, который, к сожалению, не запущен:
@Controller
@Validated
public class UserController {
@PostMapping("/users/add")
def String usersAdd(@Valid @ModelAttribute("user") User user, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
return "userAdd"
} else {
userRepository.save(user)
return "usersList"
}
}
Форма шаблона:
<form action="#" th:action="@{/users/add}" th:object="${user}" method="post">
<div class="form-row">
<div class="form-group col-md-12">
<input type="text" class="form-control" th:field="*{name}">
<div th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Name Error</div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<button type="submit" class="btn btn-success">Add</button>
</div>
</div>
</form>
Модель-класс:
@Document(collection = "users")
public class User {
@Id
String id
@Size(min=3, max=100)
String name
}
Обновление:
Пошел отладка и нашел эту часть, так что кажется, что этовызывая с правильными параметрами.Я новичок в весне, поэтому мне трудно думать о других проблемах "новичка".в InvocableHandlerMethod.java
метод DoInvoke
вызывается на моем usersAdd
с Station, BeanPropertyBindingResult, BindingAwareModelMap
.При вызове метода это вызывает ConstraintViolationException
, который прервет вызов, это ожидается?