스프링 MVC 2편 - 인프런 김영한/섹션 4 ,5- 검증1,2 - Validation
[Spring-boot] MessageCodesResolver 오류 검증
샐님
2023. 7. 13. 16:47
728x90
반응형
MessageCodesResolver 란
객체명과 필드명을 조합해 메세지가 있는 지 확인 후 없으면 좀 더 범용적인 메세지를 선택하도록 하는 기능
#더 디테일한 키 값이 있을 경우
# 디텔일한 키 가 우선순위가됨
#Level 1
required.item.itemName = 상품 이름은 필수입니다.
#Level1 2
required=필수 값 입니다.
동작 원리
1. regjectValue(), reject() 내부에서 MessageCodesResolver 를 사용해서 코드 생성.
2. FieldError, ObjectError 생성자에 여러 오류 코드 가짐.
3. MessageCodesResolver 를 통해 생성된 순서대로 오류 코드 보관
4. 타임리프 화면을 렌더링 할 때 th:errors 가 실행되고 이해 오류가 있으면 오류 메세지 코드 순서대로 돌면서 메세지를 찾고 없으면 디폴트 메세지 출력.
@Test
void messagesCodesResolverObject(){
String[] messageCodes = codesResolver.resolveMessageCodes("required", "item");
for(String messageCode:messageCodes){
System.out.println("MessageCode ="+messageCode);
}
}
/**
*MessageCode =required.item
*MessageCode =required
*/
@Test
void messageCodesResolverField(){
String[] messageCodes = codesResolver.resolveMessageCodes("required","item","itemName",String.class);
Assertions.assertThat(messageCodes).containsExactly(
"required.item.itemName",
"required.itemName",
"required.java.lang.String",
"required");
}
728x90
반응형