✅ BindingResult란? Handler란? 차이점은?

졸용·2025년 3월 31일

✅ BindingResult란?

주로 폼 데이터나 HTTP 요청을 처리할 때 유효성 검사를 수행하고 그 결과를 저장하는 역할을 하는 객체를 말한다.

Spring MVC에서는 @Valid 또는 @Validated 어노테이션을 사용하여 입력 값의 유효성을 검사하고, 그 결과를 BindingResult에 저장한다.

➡️ BindingResult는 유효성 검사에서 발생한 오류 결과를 저장하는 객체

⭕ 유효성 검사에서 오류 발생 시 BindingResult에 저장

❌ 유효성 검사에서 오류 발생 없을 시 BindingResult에 저장 X



✅ Handler란?

Spring MVC에서는 HTTP 요청을 받아서 처리하는 메서드나 클래스를 말한다.

❓핸들러 클래스? ❓핸들러 메서드? ❓핸들러 객체? → 뭔 차이지?

(예)

@Controller
public class UserController {

    @GetMapping("/user")
    public String showUserPage() {
        return "userPage";
    }
}

UserController핸들러 클래스이고,

showUserPage()핸들러 메서드이고,

showUserPage() 메서드를 실행했을 때 호출되는 객체가 핸들러 객체이다.

➡️ 즉, 요청에 대한 처리를 담당하는 것 자체를 Handler 라고 볼 수 있다.

❗핸들러는 코딩 설계에 따라 클래스가 될 수도 있고, 메서드가 될 수도 있고, 객체가 될 수도 있다.❗



✅ BindingResult VS Handler 차이점

(예)

@Controller
public class UserController {

    @PostMapping("/register")
    public String registerUser(@Valid @ModelAttribute User user, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            // 유효성 검사 실패 -> 에러 페이지로 이동
            return "errorPage";
        }
        // 유효성 검사 통과 -> 정상 처리
        return "successPage";
    }
}

▸ 예시 코드를 쉽게 이해해보기 위한 그림 ◂

profile
꾸준한 공부만이 답이다

0개의 댓글