이렇게 사용하면, 에러를 발생시켜도 사용자가 입력한 변수가 그대로 사용자에게 보여지게 됨
bindingResult.addError(new FieldError("item", "itemName", item.getItemName(), false, null, null, "상품 이름은 필수 입니다."));
여기서 false는 bindingFailure, null은 순서대로 codes, arguments를 의미
하지만 에러메세지를 properties에 저장해놓고, 불러올 수도 있다.
그러면 defaultMessage에는 null을 넣고, codes에는 String배열을 만들고 properties에 선언한 string객체를 넣어준다.
bindingResult.addError(new FieldError("item", "itemName", item.getItemName(), false, new String[]{"required.item.itemName"}, null, null));
가격조건과 같이 범위가 필요한 경우에는
properties에서 선언한 바인딩 갯수에 따라
range.item.price=가격은 {0} ~ {1} 까지 허용합니다.
arguments에 Object배열을 생성하여 범위를 지정해준다
bindingResult.addError(new FieldError("item", "price", item.getPrice(), false, new String[]{"range.item.price"}, new Object[]{1000, 1000000}, null));
'Languages | Frameworks > Spring' 카테고리의 다른 글
MessageCodesResolver - 메세지 우선순위 설정 (0) | 2022.03.21 |
---|---|
BindingResult(rejectValue(), reject())사용하기 -3 + MessageCodesResolver 소개 (0) | 2022.03.21 |
BindingResult(error 출력시 유용) -1 (0) | 2022.03.21 |
@ControllerAdvice, @ExceptionHandler를 이용한 예외처리 분리, 통합하기(Spring에서 예외 관리하는 방법, 실무에서는 어떻게?) (0) | 2021.12.30 |
Spring AOP(관점지향프로그래밍) (0) | 2021.09.24 |