DevBoi

@RequestBody,ResponseBody,Requestparam 등등 본문

Develop/[Spring]

@RequestBody,ResponseBody,Requestparam 등등

HiSmith 2021. 6. 13. 17:50
반응형

제일 많이 쓰는 어노테이션중 하나인 View에서 컨트롤러 전달 방법에 대한 어노테이션에 대한

기초 지식 공부의 필요성이 생겼다.

 

완전히 이해하지 않고, 사용하다 보니까, 헷갈려서 삽질을 할때가 발생한다... (이럴 때 매운 화남)

무튼, View <-> Controller 간의 데이터 전달을 돠주는 어노테이션에 대한 완벽한 이해를 위해 포스팅한다.

 

 

 

@ResponseBody

@Controller에서는, String 으로 return 을 시키면, view로 Return을 하게 된다.

@RestController의 경우,  data에 대한 response를 주는 Rest-api 에 대한 사용이 목적이므로

@ResponseBody 가 자동으로 붙는다.

그러나, Controller에서는 그렇지않다. 데이터를 넘겨주는 경우, Responsebody에 대한 명시를 해주어야 한다.

예를 들면,

이렇게 , form 태그의 내용을 submit 해주는 로직이 jsp에 있다고 치면,

Controller에서는 

 

이런식으로 받으면 된다.

만약에 ResponseBody를 하지않으면, user.getId로 넘어온 값 .jsp로 가게된다.

또한 파라미터도, 별다른 명시없이, 맞춰줄만한 VO로 맞춰주면 자동으로 매핑된다.

 

그런데, 만약에 Ajax에 대한 통신의 경우에는...?

이런식으로 우선 보낸다.

데이터를 보낼때는 JSON 형식으로 보내야하는데, JSON.stringify 에 대한 메소드가, Jacascript Object에 대한

값을 json 문자 형식으로 변환 시켜주는 일을 한다.

 

Controller에서는...

이런식으로 requestbody를 붙여줘야 한다.

그 이유는, ajax http 요청은, body 에 json형식의 데이터가 요청이 된다.

그렇게 되면, 부합하는 메소드인actiontest 의 메소드가 호출이된다.

 파라미터의 RequestBody 의 값을 보고, Request의 body 의 json,xml의 데이터를 User와 매핑해주게된다.

 

 

 

@ResponseBody ,RequestBody 에 대한 사용방법을 익혀봤고,

다음 포스팅때는 Requestparam 이나, 데이터 전달 방식 관련 어노테이션에 대한 추가 공부를 해야겠다.

 

ResponseBody는 Response 몸체에 응답을 넣어줄때,

RequestBody는 form data가 아닌 Request로 데이터 요청이 들어올때, 이를 받게 위해서 쓰는것이 오늘의 요약 결론이다.

반응형