728x90
[에러 현상]
insert작업을 할 때 RequestBody의 데이터 MIME타입을
x-www-form-rulencoded로 했을 때는 문제가 없는데
raw(Json)의 형태로 하면 propertyValueException이 일어남
[에러 후보]
Json데이터의 형식을 실수함
[에러 원인]
Join메서드의 DTO인 User 패러미터 앞에 @RequestBody를 붙여주지 않아서
에러가 났던 것임..
근데 @RequestBody붙이니까 이젠 xxx-form-urlencoded방식으로 하니까 지원안한다는 식으로 뜸
@ResponseBody를 붙이지 않으면 자동으로 @ModelAttribute가 붙는다고 한다..
이 둘의 차이 때문에
Json은 @ResponseBody을 붙이고
xxx-form-urlencoded는 @ModelAttribute를 붙이는듯..?
@ModelAttribute는 파라미터 값으로 DTO객체에 바인딩을 하는 방식이기 때문에 바인딩하려는 DTO객체에 Setter메소드가 반드시 있어야 하고, (form태그로 받아옴)
@RequestBody는 요청 본문의 body에 json이나 xml값으로 요청을 하여 HttpMessageConveter를 반드시 거쳐 DTO객체에 맞는 타입으로 바꿔서 바인딩을 시켜준다. (json, xml로 받아옴)
-> HttpMessageConverter의 Jackson 라이브러리가 받아주는 것임
User user -> @RequestBody User user