반응형
FieldError과 ObjectError에 대해서
if (!StringUtils.hasText(item.getItemName())) { //넘어온 글자가 없으면
bindingResult.addError(new FieldError("item", "itemName", item.getItemName(), false, null, null, "상품 이름은 필수입니다."));
}
전과 같은데 추가된 부분이 있다.
FieldError 는 두 가지 생성자를 제공하는데 이번에는 다른 생성자를 사용해 보았다.
Ctrl + p를 누르면 어떤 파라미터 담을 수 있는지 볼 수 있는데 아래와 같다.
objectName : 오류가 발생한 객체 이름
field : 오류 필드
rejectedValue : 사용자가 입력한 값(거절된 값)
bindingFailure : 타입 오류 같은 바인딩 실패인지, 검증 실패인지 구분 값
codes : 메시지 코드
arguments : 메시지에서 사용하는 인자
defaultMessage : 기본 오류 메시지
여기서 빨간색 박스를 보면 rejectedValue가 바로 오류 발생시 사용자 입력 값을 저장하는 필드이다.
이게 왜 필요하냐면 바인딩 되는 시점에 오류가 발생하면 model객체에 사용자 입력 값을 유지하기 어렵다. 예를 들면 Int 형으로 받아야 하는데 String 형으로 온다면 값을 가지고 있지 못 한다. 하지만 rejectedValue는 그 값을 저장해 놓을 수 있다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 오류 코드와 메시지 처리(2) (0) | 2022.02.11 |
---|---|
[Spring Boot] : 오류 코드와 메시지 처리(1) (0) | 2022.02.11 |
[Spring Boot] : BindingResult 사용(2) (0) | 2022.02.10 |
[Spring Boot] : BindingResult 사용(1) (0) | 2022.02.10 |
[Spring Boot] : 타임리프를 통한 검증 코드 추가하기 (0) | 2022.02.10 |
댓글