Notice
Recent Posts
Link
Tags
- select
- @transactional
- mysql
- SSL
- jpa
- 자바
- 문자열
- spring security 6
- java
- 프로그래머스
- 데이터베이스
- AWS
- nginx
- ORM
- PYTHON
- spring mvc
- 1차원 배열
- 스프링부트
- string
- spring boot
- Django
- springboot
- spring
- Docker
- Git
- sql
- session
- 스프링
- DI
- join
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Archives
개발하는 자몽
Bean Validation - 에러 코드 본문
중요하지만, 까먹기 쉬운 내용인 것 같아서 정리해 놓는다.
섹션 5. 검증 2 - Bean Validation
Bean Validation이 기본으로 제공하는 오류 메시지를 변경해 보자
Bean Validation을 적용하고 bindingResult에 등록된 검증 오류 코드를 보면 typeMismatch와 유사하다.
특정 오류 코드를 기반으로 MessageCodesResolver를 통해 다양한 메시지 코드가 순서대로 생성된다. (Level은 붙지 않고 NotBlank~ 부터 붙는다. 레벨은 구체적일수록 높다)
@NotBlank
- Level 1 : NotBlank.item.itemName
- Level 2 : NotBlank.itemName
- Level 3 : NotBlank.java.lang.Spring
- Level 4 : NotBlank
@Range
- Range.item.price
- Range.price
- Range.java.lang.Spring
- Range
MessageCodesResolver를 통해 생성된 메시지 코드를 .properties(errors.properties)에 등록하자. 아래는 간단하게 작성한 것이다.
#===Bean Validation 추가===
#Level1
NotBlank.item.itemName=상품 이름을 입력해주세요.
#Level2, 3 생략
#Level4
NotBlank={0} 공백 X
Range={0}, {2} ~ {1} 허용
Max={0}, 최대 {1}
{0} : 필드명
{1}, {2}... : 각 애노테이션마다 다르다
이때 errors.properties를 적용하기 위해서는 application.properties에 아래와 같이 입력한다.
spring.messages.basename=errors
앞에서 언급된 typeMismatch는 예를 들면 Integer 필드에 String이 입력될 경우 발생하는데 스프링에서 자동으로 생성한다.
typeMismatch.java.lang.Integer=숫자를 입력해주세요.
typeMismatch=타입 오류입니다.
위 코드를 errors.properties에 작성한다. 작성하지 않으면 스프링에서 기본으로 제공하는 에러 메시지가 출력된다.
'Java' 카테고리의 다른 글
동시성 문제와 쓰레드 로컬 (0) | 2023.03.22 |
---|---|
Bean Validation - HTTP 메시지 컨버터 (0) | 2023.03.13 |
Class.isAssignableFrom (0) | 2023.03.08 |
체크 예외, 언체크 예외 (0) | 2022.09.22 |
isEqualTo, isSameTo, isInstanceOf (0) | 2022.08.11 |
Comments