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) {
public Boolean sendingRelationship(Auth auth, @RequestParam Map<String,Object> map) {
const params = {
"aaa" : 'hello',
"bbb" : "them",
}
$.ajax({
type : 'post',
url : "/user/sendingRelationship",
data : params,
"aaa" : 'hello',
"bbb" : "them",
}
$.ajax({
type : 'post',
url : "/user/sendingRelationship",
data : params,
requestbody
form으로 값을 넘겼는데 json타입으로 보내라고 에러가 났다.
ajax로 보낼 땐 제이슨 데이터를 stringfy해줘서 보내야한다.
contentType: 'application/json', 추가
=> map으로 받는거 가능