코드 그라데이션
오류 코드와 메시지 처리 (4) 본문
먼저 이렇게 찍어보면
두 가지 메시지 코드를 나타낸다.
두 번째 테스트 찍어보면
결과로 4개를 출력한다.
가장 디테일한 게 첫 번째로, 가장 포괄적인게 마지막으로 나온다.
전체 코드
package hello.itemservice.validation;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.validation.DefaultMessageCodesResolver;
import org.springframework.validation.MessageCodesResolver;
import static org.assertj.core.api.Assertions.assertThat;
public class MessageCodesResolverTest {
MessageCodesResolver codesResolver = new DefaultMessageCodesResolver();
@Test
void messageCodesResolverObject() {
String[] messageCodes = codesResolver.resolveMessageCodes("required","item");
assertThat(messageCodes).containsExactly("required.item", "required");
}
@Test
void messageCodesResolverField() {
String[] messageCodes
= codesResolver.resolveMessageCodes("required", "item", "itemName", String.class);
assertThat(messageCodes).containsExactly(
"required.item.itemName",
"required.itemName",
"required.java.lang.String",
"required"
);
}
}
MessageCodesResolver
DefaultMessageCodesResolver의 기본 메시지 생성 규칙
동작 방식
오류 메시지 출력
타임리프 화면을 렌더링 할 때 th:errors 가 실행된다.
만약 이때 오류가 있다면 생성된 오류 메시지 코드를 순서대로 돌아가면서 메시지를 찾는다.
그리고 없으면 디폴트 메시지를 출력한다.
728x90
'Spring > Validation' 카테고리의 다른 글
오류 코드와 메시지 처리 (6) (0) | 2024.02.27 |
---|---|
오류 코드와 메시지 처리 (5) (1) | 2024.02.27 |
오류 코드와 메시지 처리 (3) (0) | 2024.02.25 |
오류 코드와 메시지 처리 (2) (1) | 2024.02.25 |
오류 코드와 메시지 처리 (1) (0) | 2024.02.24 |
Comments