인프런 커뮤니티 질문&답변
rejectValue() 사용시 arguments에 따른 defaultMessage
작성
·
447
·
수정됨
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는 필수적으로 작성해야 합니다. 이를 통해 에러 메세지의 기본 값이 표시되도록 할 수 있습니다.
감사합니다.






