주로 폼 데이터나 HTTP 요청을 처리할 때 유효성 검사를 수행하고 그 결과를 저장하는 역할을 하는 객체를 말한다.
Spring MVC에서는 @Valid 또는 @Validated 어노테이션을 사용하여 입력 값의 유효성을 검사하고, 그 결과를 BindingResult에 저장한다.
➡️ BindingResult는 유효성 검사에서 발생한 오류 결과를 저장하는 객체
⭕ 유효성 검사에서 오류 발생 시 BindingResult에 저장
❌ 유효성 검사에서 오류 발생 없을 시 BindingResult에 저장 X
Spring MVC에서는 HTTP 요청을 받아서 처리하는 메서드나 클래스를 말한다.
❓핸들러 클래스? ❓핸들러 메서드? ❓핸들러 객체? → 뭔 차이지?
(예)
@Controller
public class UserController {
@GetMapping("/user")
public String showUserPage() {
return "userPage";
}
}
→ UserController 가 핸들러 클래스이고,
→ showUserPage() 가 핸들러 메서드이고,
→ showUserPage() 메서드를 실행했을 때 호출되는 객체가 핸들러 객체이다.
➡️ 즉, 요청에 대한 처리를 담당하는 것 자체를 Handler 라고 볼 수 있다.
❗핸들러는 코딩 설계에 따라 클래스가 될 수도 있고, 메서드가 될 수도 있고, 객체가 될 수도 있다.❗
(예)
@Controller
public class UserController {
@PostMapping("/register")
public String registerUser(@Valid @ModelAttribute User user, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
// 유효성 검사 실패 -> 에러 페이지로 이동
return "errorPage";
}
// 유효성 검사 통과 -> 정상 처리
return "successPage";
}
}
▸ 예시 코드를 쉽게 이해해보기 위한 그림 ◂
