-
[Spring] MessageResolver 의 메시지 코드JAVA/Spring(Springboot) 2023. 2. 25. 11:07728x90
Spring에서 제공하는 BindingResult를 통해서 rejectValue() 함수 내에서
에러 코드를 가져올 때 내부적으로 MessageResolver를 사용한다.MessageResolver를 통해서 에러 코드를 어떤걸 생성하는지 살펴보자.
Object Error
public class MessageCodesResolverTest { MessageCodesResolver codesResolver = new DefaultMessageCodesResolver(); @Test void messageCodesResolverObject() { String[] messageCodes = codesResolver.resolveMessageCodes("required", "item"); for (String messageCode : messageCodes) { System.out.println("messageCode = " + messageCode); } } }
code인 required
objcet인 item 을 인자로 넣고 생성되는 messageCode는 다음과 같다.생성되는 code의 규칙은 objectError의 경우 다음 순서로 2가지 생성
1. code + "." + object name
2. code예) 오류 코드: required, object name: item
1. required.item
2. requiredField Error
public class MessageCodesResolverTest { MessageCodesResolver codesResolver = new DefaultMessageCodesResolver(); @Test void messageCodesResolverField() { String[] messageCodes = codesResolver.resolveMessageCodes("required", "item", "itemName", String.class); for (String messageCode : messageCodes) { System.out.println("messageCode = " + messageCode); } } }
code인 required
objcet인 item, field인 itemName 을 인자로 넣고 생성되는 messageCode는 다음과 같다.생성되는 code의 규칙은 fieldError의 경우 다음 순서로 4가지 생성
1. code + "." + object name + "." + field
2. code + "." + field
3. code + "." + fieldType
4. code예) 오류 코드: required, object name: item, field: itemName
1. required.item.itemName
2. required.itemName
3. required.java.lang.String
4. required스프링이 직접 추가한 경우
주로 typeMismatch, @ 어노테이션 Bean Validation과 같이 스프링이 검증오류에 직접 추가해 준 경우를 살펴보자
생성되는 code의 규칙은 다음 순서로 4가지 생성
1. code + "." + object name + "." + field
2. code + "." + field
3. code + "." + fieldType
4. code예) 오류 코드: typeMismatch, object name: item, field: price
1. typeMismatch.item.price
2. typeMismatch.price
3. typeMismatch.java.lang.Integer
4. typeMismatch만약 스프링에서 만들어준 에러 메시지를 수정하고 싶다면
errors.properties에서 메시지 코드를 추가해서 사용하면 된다.# 추가 typeMismatch.java.lang.Integer=숫자를 입력해주세요.
[출처] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard
728x90728x90'JAVA > Spring(Springboot)' 카테고리의 다른 글