만약 SSR 방식의 뷰 필드 검증을 작성하면 다음과 같이 작성할 수 있을 것 이다.
@PostMapping
public String login(@Valid @ModelAttribute LoginForm form,
BindingResult bindingResult,
@RequestParam(defaultValue = "/") String redirectUrl,
HttpServletRequest request) {
// 필드 검증 로직 시작
if (!StringUtils.hasText(form.getStudentNumber())) {
bindingResult.rejectValue("studentNumber","required");
}
if (!StringUtils.hasText(form.getPassword())) {
bindingResult.rejectValue("password","required");
}
if (bindingResult.hasErrors()) {
log.warn("error = {}", bindingResult);
return "login/login-form";
}
스프링은 이 복잡한 조건문을 간단하게 사용하게 해주는 ValidationUtils를 지원한다.
// ValidationUtils 사용
ValidationUtils.rejectIfEmptyOrWhitespace(bindingResult, "studentNumber", "required");
ValidationUtils.rejectIfEmptyOrWhitespace(bindingResult, "password", "required");
// 아래 코드는 위 두줄과 똑같다
if (!StringUtils.hasText(form.getStudentNumber())) {
bindingResult.rejectValue("studentNumber","required");
}
if (!StringUtils.hasText(form.getPassword())) {
bindingResult.rejectValue("password","required");
}
파라미터로 오류를 검증할 BindingResult 와 필드 그리고 메시지와 연결된 오류코드를 입력하면 똑같이 처리 된다.
'Spring > MVC' 카테고리의 다른 글
| [MVC] ValidatorFactory를 직접 사용한 Bean Validation (0) | 2025.10.21 |
|---|---|
| [Spring] 메시지와 국제화 - 어떻게 국제화가 자동으로 일어날까요? (0) | 2025.07.03 |
| [Spring] @ModelAndAttribute 의 동작 과정 (0) | 2025.06.24 |
| [Spring] Spring MVC가 제공하는 Request 매핑 기능 (0) | 2025.06.24 |
| [Spring] Spring MVC - 스프링이 제공하는 컨트롤러 (0) | 2025.06.23 |