반응형
@RequestBody 어노테이션은 JSON이나 XML등을 인자로 받을 수 있게 해준다.
인자로 변환하는 과정에서 HttpMessageConverter의 구현체가 필요하다.
Jackson 라이브러리를 사용중이면 자동으로 등록된다.
<form>태그를 사용한 값을 받을때에는 content type이 multipart/form-data 혹은 application/x-www-form-urlencoded일텐데
이를 변환시켜주는 FormHttpMessageConverter가 있으며 MultiValueMap<String,String> 형태로 받을 수 있다.
이런경우엔 보통 객체로 받는것이 훨씬 편하다.(멤버변수 자동 매핑)
multipart/form-data의 경우에는 FormHttpMessageConverter에서 분명 지원하지만, HttpMediaTypeNotSupportedException이 발생한다.
FormHttpMessageConverter 설명을 보면 나와있는데, 이것때문에 한참을 헤맸다.
(application/x-www-form-urlencoded는 read and write 지원, multipart/form-data는 write만 지원)
반응형
'dev > web' 카테고리의 다른 글
[Spring Boot] datasource bean not working (0) | 2017.08.17 |
---|---|
spring @ModelAttribute and @RequestBody (0) | 2017.08.13 |
Ajax 크로스 도메인 세션유지 (0) | 2017.03.02 |
웹 기술 동향 - 개인적인 로그 (0) | 2017.03.02 |
camel case vs snake(underscore) case (0) | 2016.01.23 |