@RequestBody에 관해서 질문이요.
181
작성한 질문수 3
선생님, 스프1탄 MVC02의 35강을 보고나서 질문드려요.
boardUpdate() Ajax에서 클라이언트가 적은 값을 변수 title, content에 초기화 하고,
그 값이 자바스크립트니까 JSON.stringfy로 JSON으로 변경해주고,
컨트롤러에서 @RequestBody로 그 JSON 값을 자바로 변환해서 비즈니스 로직을 해주고 있다.
맞나요?
근데 insertBoard() 에서도 클라이언트가 적은 값을 fData에 자바스크립트 문자열로 직렬화 해줬는데,
어떻게 변환과정없이 비즈니스 로직이 실행되나요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
신민기는위대해요님, 질문하신 내용에 대해 답변드리겠습니다.
네, 맞습니다. Ajax에서 클라이언트가 입력한 값을 JSON 문자열로 변환한 후, 컨트롤러에서 @RequestBody 어노테이션을 사용하여 JSON 값을 자바 객체로 변환하여 비즈니스 로직을 처리하는 과정이 일반적입니다.
그러나 insertBoard()의 경우, 질문하신 내용만으로는 정확한 변환 과정을 설명드릴 수 있는 정보가 부족합니다. 일반적으로, 클라이언트에서 서버로 데이터를 전송할 때 JSON 형태로 직렬화하여 전송하고, 컨트롤러에서 @RequestBody를 사용하여 자바 객체로 역직렬화하는 과정을 거칩니다. 하지만 fData가 어떤 형태로 어떻게 전송되었는지, 서버 측에서 어떻게 처리되었는지에 대한 구체적인 정보가 없기 때문에, 상세한 답변을 드리기 어렵습니다.
일반적으로 클라이언트에서 서버로 데이터를 전송하고, 서버에서 이를 처리하는 방법에는 여러가지가 있으며, 사용하는 어노테이션(@RequestBody, @ModelAttribute, @RequestParam 등)이나 방식(Form Data, JSON 등)에 따라 데이터를 받는 방식과 처리 과정이 달라집니다.
따라서 insertBoard()에서의 데이터 처리 방식을 이해하시려면, 해당 메소드를 처리하는 컨트롤러의 코드 및 해당 데이터를 어떻게 받고 처리하는지에 대한 코드를 확인하는 것이 가장 정확합니다.
추가적으로 궁금하신 사항이 있다면, 더 구체적인 코드 예시를 제공해주시면 더 상세한 답변을 드릴 수 있을 것 같습니다.
0
function insertBoard(){
let fData = $("#frm").serialize();
$
.ajax({
url : "board/new",
type : "post",
data : fData,
success : function(response)
...
});
}insertBoard()에서는 form의 요소들을 serialize()하여 fData변수에 대입하고, 이를 JSON.stringfy()없이 data값으로 전달하고 있습니다.
@PostMapping("new")
public void boardInsert(Board vo) {
mapper.boardInsert(vo);
}해당 controller에서는 baordUpdate()와 달리 @RequestBody어노테이션을 쓰지 않고있습니다.
boardUpdate()에서는 선택자.val()값을 자바스크립트 변수에 대입하고 그 값을 JSON으로 바꿔주는데, insertBoard()에서는 serialize()한 자바스크립트 문자열을 fData에 대입한 후 왜 JSON으로 바꿔주지 않아도 되는건가요?
재생이 안되요
0
113
0
404 HTTP 상태 코드
0
163
2
lombok api 등록 후
0
174
2
UsernamePasswordAuthenticationToken 생성에 대해서 질문이 있습니다.
0
222
1
MVC06에 회원정보수정, 이미지등록수정 강의 영상이 없습니다
2
207
1
namespace 칸이 없습니다.
0
279
2
프로젝트 생성시 Srping MVC Project 없음
0
354
1
spring security 이후 Spring MVC06
0
222
1
Lomkob API 관련
0
201
1
깃허브 주소
0
264
1
포워딩오류? 인거 같습니다
0
336
1
css바꾸고 싶을때
0
306
1
git 연결할때 오류
0
264
1
프로젝트 생성시 Srping MVC Project 없음
0
1060
1
Oracle을 연결하고 싶은데, sql파일을 만들고나면...
0
281
1
프로젝트 생성시 Srping MVC Project 없음
0
4719
6
43강 age 0오류
0
298
1
Controller의 BoardMapper 쪽에서 문제가 있습니다.
0
381
1
Spring05 버전에서 이미지를 설정했을 때 권한이 보이지 않습니다
0
239
1
스프링 시큐리티 로그인 후 모달창 질문드립니다
0
625
0
아이디 중복확인 NullPointerException
0
361
2
새로고침해야만 등록한 글이 리스트에 뜹니다.
0
245
1
회원테이블과 권한테이블 간 관계
0
469
1
MVC02에서 List 화면이 나오지 않습니다
0
244
1





