본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : FieldError과 ObjectError에 대해서

by 오주현 2022. 2. 10.
반응형

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편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글