작성
·
43
0
선생님, 스프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()
에서의 데이터 처리 방식을 이해하시려면, 해당 메소드를 처리하는 컨트롤러의 코드 및 해당 데이터를 어떻게 받고 처리하는지에 대한 코드를 확인하는 것이 가장 정확합니다.
추가적으로 궁금하신 사항이 있다면, 더 구체적인 코드 예시를 제공해주시면 더 상세한 답변을 드릴 수 있을 것 같습니다.
insertBoard()에서는 form의 요소들을 serialize()하여 fData변수에 대입하고, 이를 JSON.stringfy()없이 data값으로 전달하고 있습니다.
해당 controller에서는 baordUpdate()와 달리 @RequestBody어노테이션을 쓰지 않고있습니다.
boardUpdate()에서는 선택자.val()값을 자바스크립트 변수에 대입하고 그 값을 JSON으로 바꿔주는데, insertBoard()에서는 serialize()한 자바스크립트 문자열을 fData에 대입한 후 왜 JSON으로 바꿔주지 않아도 되는건가요?