Spring - Validation - 오류 코드와 메시지 처리1

현시기얌·2021년 7월 18일
0

Validation

목록 보기
2/8

1. 오류 코드 관리하기

예를들어 "가격은 1000원 이상", "가격은 1000원 이상이어야 합니다." 와 같이 우리는 똑같은 오류라도 종종 다르게 표시할 때가 있다.
이럴경우 사용자의 요구사항이 변경되었거나 수정해야할 일이 생겼을 때 모두 바꿔줘야 하는 번거러움이 생길 수 있다. 따라서 오류 코드를 관리함으로써 이러한 불편 사항들을 해결할 수 있다.

2. FieldError를 이용한 오류 코드 관리하기

  • objectName : 오류가 발생한 객체 이름
  • field : 오류 필드
  • defaultMessage : 기본 오류 메시지
  • rejectedValue : 사용자가 입력한 값(거절된 값)
  • bindingFailure : 타입 오류 같은 바인딩 실패인지, 검증 실패인지 구분 값
  • codes : 메시지 코드
  • arguments : 메세지에서 사용하는 인자

앞에서 얘기 했던 것 처럼 FieldError의 Parameter에는 위와 같은 속성이 있는데 codes와 arguments 필드는 오류 발생 시 오류 코드로 메시지를 찾기 위해 사용된다. 우리는 이 두개의 필드를 이용하여 오류 코드를 관리 할 수 있다.

3. properties 설정하기

application.properties
errors.properties

우리는 에러코드를 따로 관리 하기 위해 errors.properties를 만든 후 applicaiton.properties에 errors를 추가해준다. (messages가 default)
그 이후에 errors.properties에 위와 같이 오류 메시지들을 추가해준다.

4.FieldError의 codes, arguments에 추가하기

FieldError에 errors.properties에 작성했던 코드를 넣어준다.
cf) Stirng[] 배열로 받는 이유는 메시지 코드는 하나가 아니라 여러 값을 전달할 수 있기 때문이다. 이 때 메시지 코드는 순서대로 매칭해서 처음 매칭되는 메시지가 사용된다.
변수의 값이 필요한 경우에는 arguemtents에 해당하는 변수 값을 넣어준다.
ex) Object[]{1000,1000000} -> totalPriceMin의 {0}, {1} 로 치환할 값을 전달

출처 : 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

profile
현시깁니다

0개의 댓글

관련 채용 정보