검증 오류 코드는 다음과 같이 2가지로 나눌 수 있다.
- 개발자가 직접 설정한 오류 코드 rejectValue() 를 직접 호출
- 스프링이 직접 검증 오류에 추가한 경우(주로 타입 정보가 맞지 않음)
price 필드에 문자 "qqq"를 입력해보자.
로그를 확인해보면 BindingResult 에 FieldError 가 담겨있고, 다음과 같은 메시지 코드들이 생성된
것을 확인할 수 있다.
codes[typeMismatch.item.price,typeMismatch.price,typeMismatch.java.lang.Integer,typ
eMismatch]
다음과 같이 4가지 메시지 코드가 입력되어 있다.
- typeMismatch.item.price
- typeMismatch.price
- typeMismatch.java.lang.Integer
- typeMismatch
그렇다. 스프링은 타입 오류가 발생하면 typeMismatch 라는 오류 코드를 사용한다. 이 오류 코드가
MessageCodesResolver 를 통하면서 4가지 메시지 코드가 생성된 것이다.
error.properties 에 다음 내용을 추가하자
#추가
typeMismatch.java.lang.Integer=숫자를 입력해주세요.
typeMismatch=타입 오류입니다.
재실행 >>
'Languages | Frameworks > Spring' 카테고리의 다른 글
[SpringBoot] mybatis resultType HashMap Null값 받기 (0) | 2022.05.02 |
---|---|
Validator분리 - @InitBinder, @Validated (0) | 2022.03.30 |
ValidationUtils (0) | 2022.03.21 |
MessageCodesResolver - 메세지 우선순위 설정 (0) | 2022.03.21 |
BindingResult(rejectValue(), reject())사용하기 -3 + MessageCodesResolver 소개 (0) | 2022.03.21 |