Я пытаюсь сделать регистрационные коды пользователей с помощью весенней загрузки веб-стартера.Во-первых, это класс формы регистрации, включающий ограничения.
@Data
public class RegisterForm {
@NotBlank(message = "Not valid username.") // (1)
@Size(min=2, max=30, message="minimum 2 and maximum 30") // (3)
private String username;
@NotBlank(message = "Not valid password") // (1)
@Size(min=5, message = "minimum 5") // (3)
private String password;
@Size(max=50, message="maximum 50") // (3)
private String fullname;
@NotEmpty(message = "Not valid email") // (2)
private String email;
}
И следующие коды - это классы контроллера, которые связывают класс пользователя и класс формы регистрации.
@RequestMapping(value="/users/register", method=RequestMethod.POST)
public String register(@Valid RegisterForm registerForm, Model model, BindingResult bindingResult) {
if(!bindingResult.hasErrors()) {
User user = new User();
user.setUsername(registerForm.getUsername());
user.setPassword(registerForm.getPassword());
user.setEmail(registerForm.getEmail());
user.setFullname(registerForm.getFullname());
user.setRole(UserRole.USER);
this.userService.register(user);
return "redirect:/home";
}
return "/users/register";
}
А ниже коды - класс контроллера ошибок.
@RequestMapping("/error")
public String errorHandle(HttpServletRequest request) {
Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
if(status != null) {
Integer statusCode = Integer.valueOf(status.toString());
if(statusCode.equals(HttpStatus.BAD_REQUEST.value())) {
return "/errors/400";
} else if(statusCode.equals(HttpStatus.NOT_FOUND.value())) {
return "/errors/404";
} else if(statusCode.equals(HttpStatus.FORBIDDEN.value())) {
return "/errors/403";
} else if(statusCode.equals(HttpStatus.INTERNAL_SERVER_ERROR.value())) {
return "/errors/500";
}
}
return "errors/default";
}
И я делаю ошибку преднамеренно, а затем на консоль выводится сообщение об ошибке, как показано ниже, и генерируется исключение 400 с / error / 400 html.
Field error in object 'registerForm' on field 'username': rejected value []; default message [minimum 2 and maximum 30]
Field error in object 'registerForm' on field 'username': rejected value []; default message [Not valid username]
Field error in object 'registerForm' on field 'email': rejected value []; default message [Not valid email]
Field error in object 'registerForm' on field 'password': rejected value []; default message [Not valid password]
Field error in object 'registerForm' on field 'password': rejected value [];default message [minimum 5]]
Моя проблема в том, что я понятия не имею, как отправить сообщение об ошибке в поле registerForm в / error / 400 html, чтобы пользователь мог подтвердить, какое поле registerForm нарушает ограничение.Я хочу знать, как поле error registerForm может быть передано в / error / 400 html.Любая идея, пожалуйста.