스프링을 공부하면서 서버에서 데이터를 받는 방법이 여러 가지 있지만 대표적인 2가지는

@RequestBody 와 @RequestParm이 있다. 이 둘의 차이는 데이터를 어떤 타입으로 받을 것인지를 결정하는 것 같다.

 

여기서 어떻게 사용하는지와 정의하는지는 생각해보지 않을 것이다. FORM 태그에서 보내는 ENCTYPE에 따라 어노테이션이 결정되는 것을 말해보고 싶다.

 

이 ENCTYPE의 속성 값들은 application/x-www-form-urlencoded , multipart/form-data, text/plain 등 있다.

@RequestBody를 사용한다면 스프링이 클라이언트로부터 넘어온 값을 사용자가 정의한 데이터 타입으로 매핑해준다. 그런데 넘어온 타입이 Json 형태이지 않는다면 오류 내보낸다. Content-type을 정해주지 않는다면 default값인 application/x-www-form-urlencoded로 데이터를 보내줄 것이다. 그렇기에 application/json으로 바꿔야 데이터를 보낼 수 있다.

 

@RequestParm을 사용한다면 default값으로 보내도 충분히 매핑될 수 있다.

 

 

 

 

@RequestBody -> application/json 사용

@RequestParm -> application/x-www-form-urlencoded 사용

+ Recent posts