BindingResult

컴공생의 코딩 일기·2023년 1월 5일
0

스프링

목록 보기
14/16
post-thumbnail

BindingResult

BindingResult는 검증 오류를 보관하는 객체이다. BindingResult를 보관하는 방법은 세가지가 있다.

  1. @ModelAttribute 객체에 타입 오류 등으로 바인딩이 실패하는 경우

    예) 사용자가 정수형 필드에 문자를 넣었을 경우

    바인딩이 실패하면 스프링이 FieldError를 생성해서 BindingResult 객체로 바인딩된다. (실패해도 컨트롤러는 실행된다.) BindingResultModel에 자동으로 포함되기 때문에 어떤 오류가 발생했는지 사용자에게 친절하게 알려줄 수 있다. (BindingResult가 없으면 400오류가 발생하면서 컨트롤러가 호출되지 않고 오류 페이지가 호출된다.)

  2. 개발자가 직접 정의한 경우

    개발자는 검증을 수행해서 BindingResult에 직접 오류 객체를 넣을 수 있다.

  3. validator를 사용한 경우

    검증 로직을 validator로 분리하면 컨트롤러 코드를 간단하게 유지할 있다.

BindingResult 메소드

  • reject() : 객체에 대한 에러코드 및 메시지 인자 전달
  • rejectValue() : 필드(객체의 프로퍼티)에 대한 에러 정보 추가(에러 코드 및 메시지, 메세지 인자 전달)
  • boolean hasError() : 에러 발생 여부 확인
  • int getError() : 에러 갯수 리턴

BindingResult 메서드를 사용할 때는 검증하는 코드 뒤에 사용되어야 한다.

profile
더 좋은 개발자가 되기위한 과정

0개의 댓글