GET 방식을 사용하며 컨트롤러에서 파라미터로 객체를 받을때,
이 파라미터 객체에 @RequestBody를 통해 파라미터 객체에 바인딩 할 수 없다.
왜냐하면 GET방식은 url에 쿼리스트링 형태로 전달되기 때문이다.
그러면 @RequestPram으로 받아야 할까?
하지만 @RequestPram으로 받을라면, 파라미터를 객체가 아닌, 그 객체가 갖는 모든 필드값을 열거해야 한다.
그래서 그냥 파라미터 객체에 붙어있던 @RequestBody 어노테이션을 지워보았다.
그냥 알아서 매핑해주지 않을까 해서 해봤다.
그랬더니 잘됐다.
근데 강의에서는 왜 GET방식인데, 파라미터로 쓰이는 객체 앞에 @RequestBody를 붙였는데도 잘 되는지 모르겠다
리퀘스트파람은 헤더를 읽는거고 리퀘스트바디는 바디를 읽는거고 http메서드랑은 상관이 없음
내가 뭔가 착각을 하고 있었나 보구만
리퀘스트바디를 지웠을때 매핑이된건 애노테이션없이 객체를 파라미터로 받으면 modelattribute가 적용되기때문
Controller가 @RestController 인데, 여기서도 애노테이션 없이 파라미터로 받아진게, 생략된 @ModelAttribute로 객체 매핑되서 그런거임??