Валидация параметров запроса в spring
Хочу написать ограничение на количество символов логина и пароля при регистрации пользователя.
@Controller
public class RegisteredController {
@Autowired
DataBaseAssistant dataBaseAssistant;
@Autowired
BCryptPasswordEncoder bCryptPasswordEncoder;
@PostMapping("/registration")
public String registration(@RequestParam("username") @Size(min = 3) @NotBlank String username,
@RequestParam("password") @Size(min = 3) @NotBlank String password,
@RequestParam("confirm") String confirm){
if(!username.equals("admin")
&& confirm.equals(password)
&& dataBaseAssistant.addUser(username, bCryptPasswordEncoder.encode(password))){
return "index";
} else return "forRegistration";
}
}
Страница, посылающая запрос:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Регистрация</title>
</head>
<body><form method="POST" action="/registration">
<h2>Регистрация</h2>
<div>
<input name="username" type="text" placeholder="Username"
autofocus="true"/>
<input name="password" type="password" placeholder="Password"/>
<input name="confirm" type="password" placeholder="Confirm password">
<button type="submit">Зарегистрироваться</button>
</div>
</form>
</body>
</html>
В документации сказано, что при неудовлетворении условий валидации возвращается HTTP статус 400, но этого не происходит, равно как не возникает любых других исключений. Пробовал дописывать аннотацию @EnableWebMvc к main классу, но это полностью ломает приложение, поскольку оно перестаёт осуществлять переход между html страницами. Что мне нужно сделать, чтобы обрабатывать результаты валидации?