-
BindingFailureSpring 2022. 5. 30. 12:03
BindingFailure
BindingFailure는 타입 오류 같은 바인딩 실패인지, 검증 오류인지 구별 값으로 true 또는 false 값을 넣어준다.
여기서 만약 BindingFailure를 false로 선언했는데, 타입 오류가 발생했을 때 default Message가 뜬다면 그것은 Field Error의 기능이다.
Field Error는 자동으로 타입오류를 감지해주고 검증 에러를 발생시켜주기 때문이다.예를 들어 숫자만 입력할 수 있는 가격 입력 칸이 있다고 가정해보자 그 칸에 "qqqq"라는 문자 값을 입력한다면 검증 에러가 발생한다.
BindingFailure를 false로 해준다고 해도 말이다. 반면bindingResult.addError(new FieldError("item", "itemName", "qqqq",true,null,null,"defaultMessage"));
위와 같이 rejectedValue 입력 칸에 qqqq를 넣으면 itenName의 필드 값은 Integer형 이므로 바인딩이 실패한다. 그러므로 BindingFailure 칸에는 true를 넣는것이다. 즉, 개발 단계에서 바인딩이 실패한다면 true를 넣는것이고 프로그램 사용자가 타입 에러를 발생시킨다면 그건 FieldError에서 자동으로 잡아준다.
'Spring' 카테고리의 다른 글
entity와 Dto의 차이 (0) 2022.12.23 request 스코프와 ObjectProvider (0) 2022.12.06 BindingResult (0) 2022.05.29 @Valid, BindingResult (0) 2022.01.06 @RestController (0) 2022.01.06