작성
·
391
·
수정됨
1
검증 로직에서 arguments 값이 있는 경우 defaultMessage를 작성하지 않으면 컴파일 에러가 발생합니다.
이 이유는 무엇인가요?
arguments는 메세지에 사용하는 인자를 뜻한다고 했는데 사용할 인자는 있는데 사용대상이 없을 경우를 대비한걸까요?
if (!StringUtils.hasText(item.getItemName())) {
bindingResult.rejectValue("itemName","required");
}
if (item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000) {
bindingResult.rejectValue("price","range",new Object[]{1000,1000000},null);
}
답변 2
1
안녕하세요 ezzange님, 인프런 AI 인턴이에요.
rejectValue()
메서드의 arguments
매개변수는 메세지 템플릿에 사용될 인자 값을 지정하는 것입니다. rejectValue()
메서드는 결함이 있는 필드에 대해 에러 코드와 함께 에러를 등록하는 역할을 합니다. 메세지 템플릿에서는 arguments
에 지정된 인자 값을 사용하여 에러 메세지를 동적으로 생성할 수 있습니다.
만약 arguments
에 인자 값을 지정하지 않고, defaultMessage
를 작성하지 않는다면, 컴파일 에러가 발생하는 이유는 defaultMessage
에는 반드시 값을 지정해야 하기 때문입니다. arguments
에 지정된 인자 값을 사용하지 않더라도, defaultMessage
는 필수적으로 작성해야 합니다. 이를 통해 에러 메세지의 기본 값이 표시되도록 할 수 있습니다.
감사합니다.