인프런 커뮤니티 질문&답변

학운학운님의 프로필 이미지
학운학운

작성한 질문수

스프링 프레임워크는 내 손에 [스프1탄]

35.REST 전송 방식의 이해(@RestController)

JSON.stringify 질문드립니다.

작성

·

406

0

안녕하세요 선생님.

function goUpdate(idx) {

var title=$("#nt"+idx).val();

var content=$("#ta"+idx).val();

$.ajax({

/* url : "boardUpdate.do", */

url : "board/update",

/* type : "post", */

type : "put",

/* Rest 부분에서 추가됨 */

contentType: 'application/json;charset=utf-8',

/* data : {"idx":idx, "title":title, "content":content}, */

data : JSON.stringify({"idx":idx, "title":title, "content":content}),

success : loadList,

error : function() {alert("error");}

});

}

 

여기서 {"idx":idx, "title":title, "content":content}) 이렇게 여러개를 보낼 때는 JSON.stringify를 붙여주고 contentType을 json으로 지정해줘야 하잖아요??

그리고 컨트롤러에서 @RequestBody가 필요하구요.

그런데 궁금한 것이 있습니다.

 

function goInsert(){

//var title=$("#title").val();

//var content=$("#content").val();

//var writer=$("#writer").val(); // 많으면 번거로움

var fData=$("#frm").serialize(); // form 안의 모든 parameter를 직렬화(한줄로)시켜서 한줄로 가져옴

$.ajax({

/* url : "boardInsert.do", */

url : "board/new",

type : "post",

data : fData,

success : loadList,

error : function() { alert("error")}

});

 

여기서 data를 fData로 넘겨주는데 fData는 여러개를 serialize()를 통해서 한줄로 가져오는 거잖아요?? 이거는 여러개긴 한데 한줄로 하나로 보내기 때문에 JSON.stringify가 필요 없는 건가요?? 그리고 컨트롤러에서도 @RequestBody 없이 받아도 잘 받아졌거든요. serialize()는 JSON이 아니기 때문에 @RequestBody가 필요없는건가요?

 

정리하자면 여러개를 보낼 때는 JSON.stringify로 해서 보내고 serialize()는 한줄로 만들어주기 때문에 여러개가 아니라 하나로 보면 될까요? 그리고 @RequestBody는 JSON 데이터를 처리할 때만 필요하고 serialize는 JSON 데이터가 아니니까 @RequestBody가 필요없는 것 맞을까요?

 

감사합니다.

답변 1

1

박매일님의 프로필 이미지
박매일
지식공유자

1. 여기서 {"idx":idx, "title":title, "content":content}) 이렇게 여러 개의 데이터를 JSON형식으로 컨트롤러에 전달하고자 하면 JSON.stringify로 변환해서 전달 하면되고 컨트롤러에서 받을 때 @RequestBody를 붙여서 받으면 됩니다.
contentType : json 이 부분은 서버에서 JSON데이터 받을 때 사용하면 됩니다. 서버에서 받을 필요가 없는 경우에는 사용하지 않아도되구요.

2. 여기서 data를 fData로 넘겨주는데 fData는 여러개를 serialize()를 통해서 한 줄로 가져오는 거잖아요?? 이거는 여러개긴 한데 한줄로 하나로 보내기 때문에 JSON.stringify가 필요 없는 건가요?? 그리고 컨트롤러에서도 @RequestBody 없이 받아도 잘 받아졌거든요. serialize()는 JSON이 아니기 때문에 @RequestBody가 필요 없는 건가요? => 이 부분은 잘 이해하시고 계십니다.

학운학운님의 프로필 이미지
학운학운

작성한 질문수

질문하기