인프런 커뮤니티 질문&답변

심모님의 프로필 이미지

작성한 질문수

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

Bean Validation - HTTP 메시지 컨버터

검증실패할때 error메세지

작성

·

272

0

수량의 Max을 넘어 10000을 넣었을때

에러메세지로 9999 이하여야 합니다. 가 넘어왔습니다.

 

LV1으로 Max.itemSaveForm.quantity 가 넘어오는것을 보고

errors.properties에

 Max.itemSaveForm.quantity={0},{1}최대최대

이렇게 만들고 돌려보았는데도 바뀌지 않는것을 보았는데 무슨 문제가 있는걸까요?

답변 3

0

안녕하세요! 
위 수강자와 같은 이슈를 겪고 있는 수강자 입니다.

검증실패시 응답받는 json 내 defaultMessage를  변경하고자 errors.properties내 메시지 내용을 추가하였지만 deafaultMessage가 변경되지 않았습니다. (application.properties 내 errors 포함되어 있는 것 확인했습니다.)

혹 위 이슈가 해결 되었다면 관련하여 코멘트 남겨주시면 감사하겠습니다!

항상 좋은 강의 진행해주셔서 감사합니다!:)

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 희수님 질문이 오래되어서요.

새로 질문을 만들어서 올려주시겠어요? 추가로 코드도 함께 올려주세요.

감사합니다.

안녕하세요. 오래되어서 해결되셨을꺼같은데... 혹시 몰라서 방법 남깁니다.

defaultMessage 값을 변경하고 싶으실 경우 해당 어노테이션에 message 값 넣어주시면 변경이 됩니다.

public class ItemSaveForm {

...

@NotNull
@Max(Value = 9999, message = "기본메시지 변경")
private Integer quantity;

}


별도로 설정 안하시면 Max 어노테이션의 경우 javax.validation.constraints.Max.message
에 있는 값 불러오게 되어있는것 같습니다.



원하셨던 것이였는지 잘 모르겠는데.. 잘 해결되었으면 합니다~

감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 심모님

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 심모님

errors.properties가 application.properties에 등록되어 있는지 확인해보시겠어요?

 

심모님의 프로필 이미지
심모
질문자

propperties에 정상적으로 spring.messages.basename=messages, errors

들어가있는 상태입니다.

APIController 에서만 에러메세지 수정이 안됩니다.

 

처음에는 http에서는 item 이름으로 객체가 만들어지기때문에 기존Controller에서는 

@ModelAttribute("item") 작업을 통해 객체이름을 변경해는데

APIController에서는 따로 그 작업없이 itemSaveForm 이름으로 http에 전달되어서 안되는건가 싶었는데 Max에 관련된 오류메세지가 오는것을 보면 매핑은 잘된것으로 판단됩니다. 무엇이 문제일까요 

 

심모님의 프로필 이미지

작성한 질문수

질문하기