스프링을 공부하면서 서버에서 데이터를 받는 방법이 여러 가지 있지만 대표적인 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 사용
'Spring > 스프링 부트' 카테고리의 다른 글
| 2021-12-17(JPA) @MappedSuperClass 공부 내용 정리 (0) | 2021.12.17 |
|---|---|
| 2021-12-13(스프링) HandlerInterceptor는 무엇일까 (0) | 2021.12.13 |
| 2021-11-16 (스프링) @RestController 와 @Controller (0) | 2021.11.16 |
| 2021-11-11 (회고록) 11일 공부정리 (0) | 2021.11.11 |
| 2021-10-25(JPA 공부) 프록시 객체 (0) | 2021.10.25 |