Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

Object DeSerialization (JSON) (1) - @RequestBody 본문

SpringFramework/References

Object DeSerialization (JSON) (1) - @RequestBody

defacto standard 2018. 5. 3. 22:53

@RequestBody는, Client에서 Server로 객체의 내용을 전송할 때, 이를 객체로 DataBinding하여 사용할 때 용이하다.


네트워크를 통해서 전송하려면 Object는 무조건 String으로 전송해야 하는데, 다시 받는 곳에서는 String을 Object로 바로 받아서 사용한다면 굉장히 편할 것이다.


Client에서는 JavaScript Library인 JQuery의 $.ajax()에서 JSON.stringify()함수를 사용하여 Object를 String으로 변환시킨 후 이를 인자로 태워서 Request한다.


@RequestBody는 인자 앞에 붙여서 사용할 수 있다. 이때, JSON의 키 값이 받으려는 Object의 필드명과 동일해야 한다.


@RestController
@RequestMapping("/rest/reply")
public class ReplyController {

@Inject
ReplyService replyService;

@RequestMapping(value = "", method = RequestMethod.POST)
public ResponseEntity<?> addReply(@RequestBody ReplyVO reply) throws Exception {

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String username = authentication.getName();

if (username == null)
return new ResponseEntity<Void>(HttpStatus.BAD_REQUEST);

reply.setReplydate(new Date());
reply.setReplyno(replyService.addReply(reply));

return new ResponseEntity<ReplyVO>(replyService.getReplyById(reply.getReplyno()), HttpStatus.OK);
}

}




Comments