Dev.BackEnd/Spring & Spring Boot

SpringBoot: @RequestParam vs @RequestBody이해하기

새로운 분야에 도전하며, 목표를 달성하는 개발자 2023. 9. 20. 18:52


requestparam

▶form으로 데이터 넘길 때:
requestparam은 url 상에서 데이터를 찾는다.

결론: form형식일 경우 reqeustparam이용(이름이 같아야함) ex: 검색api할 때 사용

 

※ form에서 input안에 value가 제이슨데이터를 가지고 있는 객체일경우.
이걸 폼으로 전송하려 할 때 그 input안의 value를 json stringfy로 바꿔서 보내야 requestparams으로 받을 수 있다.

※ form안에 있는 모든input값들을 ajax로 보내고 싶을 땐 form의 id값을 serialzeObject로 해서 ajax로 보내야한다.

 

▶ajax로 넘길 때

ajax로 마찬가지다.


json객체도 map으로 받는거 가능 map.get('key')

json객체의 name을 하나하나로 받는것도 가능

public Boolean sendingRelationship(Auth auth, @RequestParam (value ="aaa") String map) {
public Boolean sendingRelationship(Auth auth, @RequestParam Map<String,Object> map) {
const params = {
"aaa" : 'hello',
"bbb" : "them",
}

$.ajax({
type : 'post',
url : "/user/sendingRelationship",
data : params,

 

requestbody

form으로 값을 넘겼는데 json타입으로 보내라고 에러가 났다.

 

ajax로 보낼 땐 제이슨 데이터를 stringfy해줘서 보내야한다.

contentType: 'application/json', 추가
=> map으로 받는거 가능

 

 

참고: https://ocblog.tistory.com/49