728x90
반응형
FieldError의 생성자 (2가지)
1. public FieldError(String objectName, String field, String defaultMessage); <- 검증-2 에서 다뤘다.
2.
public FieldError(String objectName, String field, @Nullable Object rejectedValue, boolean bindingFailure, @Nullable String[ ] codes, @Nullable Object[ ] arguments, @Nullable String defaultMessage);
- objectName - 오류가 발생한 객체 이름
- field - 오류 필드
- rejectedValue - 사용자가 입력한 값
- bindingFailure - 타입 오류 같은 바인딩 실패인지 검증 실패인지 구분하는 값
- codes - 메시지 코드
- arguments - 메시지에서 사용하는 인자
- defaultMessage - 기본 오류 메시지
FieldError와 ObjectError 생성자는 errorCode와 arguments를 제공하는데, 이는 오류 발생시 오류 코드로 메시지를 찾기위해 사용한다.
errors.properties
resources 아래 경로에 errors.properties 를 하나 생성했다.
application.properties
spring.messages.basename=errors
을 입력해주어야 errors.properties가 적용된다.
Controller
이후 new FieldError를 다른 생성자로 데이터를 넣어준 결과 어떻게 나오는지 확인해 보았다.
이때, 메시지 codes 값의 데이터는 errors.properties 에서 만들어준 코드를 넣어준 것이다.
이렇게 defaultMessage를 무시하고 codes에 넣은 데이터가 나온 것을 확인해볼 수 있다.
errors.properties
만약 이런식으로 {0} {1}과 같이 지정 숫자를 넣고 싶다면, arguments를 넣어주면 되는데
Controller
이렇게 arguments 자리에 new Object[ ] 를 생성해 { } 안에 입력할 숫자 두개를 넣어주면 된다.
하지만, 보다시피 너무 코드가 길어서 사용하기가 어렵다. 어떻게하면 더 줄여볼 수 있을까? 이어서 더 알아보자.
728x90
반응형
'✨ Back-end > etc' 카테고리의 다른 글
[Spring] 검증(Validation) -5 Validator 인터페이스 (1) | 2023.10.06 |
---|---|
[Spring] 검증(Validation) -4, rejectValue()와 typeMismatch (0) | 2023.10.05 |
[Spring] 검증(Validation) -2 BindingResult (0) | 2023.09.27 |
Axios 개념 (0) | 2023.09.26 |
[Spring] 자바스크립트 JSON 문자열, 컨트롤러에서 객체로 변환 (0) | 2023.09.19 |
댓글