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

Ohsang Kwon님의 프로필 이미지

작성한 질문수

스프링 웹 MVC

핸들러 메소드 15부 @RequestBody & HttpEntity

HttpEntity에서 @Valid 사용법

작성

·

260

0

RequestBody 대신 HttpEntity를 사용하면 @Valid를 사용 하지 못하는 것 같은데, 맞나요?

답변 3

1

이래저래 찾아보니까 아래와 같이 쓰면 괜찮을 것 같네요..

public ResponseEntity<UserInfo> create(@Valid @RequestBody UserInfo userInfo, BindingResult result, @RequestHeader HttpHeaders headers, WebRequest request ) {

}

1

백기선님의 프로필 이미지
백기선
지식공유자

네, @Valid는 자바빈 스팩을 준수하는 객체만 검증이 가능합니다. 그래서 @RequestBody를 사용한 객체가 그 스팩을 준수해야 하며, HttpEntity는 그런 용도가 아니기 때문에 @Valid가 지원하지 못합니다.

0

그러면 혹시 Controller에서 헤더 정보, Request 정보가 필요하면 어떤 객체를 쓰는 것이 효율적인가요(Best Practice?)? 

일전에, 강의에서 백기선 선생님께서 HttpServletRequest를 안썼따고 말씀해주셨는데, 그러면 어떤 객체를 Controller에  갖고 와야지 Request 정보를 효율적으로 제어할 수 있는지 여쭤봐도 괜찮을까요?

고맙습니다.