Spring - Bean Validation - FieldError

현시기얌·2021년 7월 20일
0

Bean Validation

목록 보기
2/5

1. 어노테이션 검증 코드 알아보기

위와 같이 @NotBlank 검증에 실패하면 '공백일 수 없습니다.' 라는 검증 메시지를 볼 수 있다. 이제 스프링에서 검증 오류 코드를 보면

Field error in object 'item' on field 'itemName':rejected value []; codes 
[NotBlank.item.itemName,NotBlank.itemName,NotBlank.java.lang.String,NotBlank]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes 
[item.itemName,itemName]; arguments []; default message [itemName]]; default message [공백일 수 없습니다]

위와 같이 나타나는데 @NotBlank 어노테이션 역시 MessageCodesResolver를 통해

errorCode + objectName + fieldName --> NotBlank.item.itemName
errorCode + fieldName --> NotBlank.itemName
errorCode + fieldType --> NotBlank.java.lang.String
errorCode --> NotBlank

순으로 순서대로 rejectValue()에 담기는 걸 볼 수 있다.

2. properties에 Message 등록하기

#Bean Validation 추가

NotBlank.item.itemName=상품 이름을 적어주세요.

NotBlank={0} 공백 X
Range= {0}, {2} ~ {1} 허용
Max={0}, 최대 {1}

다음과 같이 errors.properties에 Bean Validation에 관한 메시지를 추가하였다.
이렇게 message를 등록하면 @NotBlank 검증 실패시 properties가 담긴 메시지를 볼 수 있다.
BeanValidation 메시지 또한 범용성으로 쓰일건지 구체적으로 쓰일건지 고려해서 LEVEL 단위로 분리해서 사용하면 좋다.

3. Bean Validation 메시지 찾는 순서

  1. 생성된 메시지 코드 순서대로 'MessageSource'에서 메시지 찾기
  2. 어노테이션의 'message' 속성 사용 -> @NotBlank(message= "공백 안되요")
  3. 라이브러리가 제공하는 기본 값 사용 -> 공백일 수 없습니다.

출처 : 스프링 MVC 2편 : 백엔드 웹 개발 활용 기술

profile
현시깁니다

0개의 댓글

관련 채용 정보