[Spring]Ajax에서 보낸 배열을 Controller에서 받기

[Spring]Ajax에서 보낸 배열을 Controller에서 받기

고코딩

멋진 고코딩 2021. 2. 24. 13:41

비동기 전송을 위해서 Ajax를 사용하던중 클라이언트에서 배열을 담아서 보낼일이 생겼다. 이 전까지는 단순히 값만 json 형식으로 보냈었다. 그럼 배열은 어떤 형식으로 보내고 어떤 방식으로 받아야 하는 것일까?

먼저 checkBox를 이용해서 체크된 값들을 new Array() 에 담는다. 그리고 자바스크립트 객체 형식으로 data에 담아서 보낸다. 이 때 반드시 post 형식으로 보내야 한다.

var checkArr = new Array(); ... $.ajax({ url : "/shop/deleteCart", type : "post", data : { chbox : checkArr }, success : function(result){ if(result == 1) { location.href = "/shop/cartList"; } else { alert("삭제 실패"); } } });

Controller에서는 기존에 사용하던 @RequestParam("키값") 변수타입 변수명 이런 식으로 받아서는 안된다. 반드시 @RequestParam(value="parameter이름[]")List 형으로 받아와야 한다.

@ResponseBody @RequestMapping(value = "/deleteCart", method = RequestMethod.POST) public int deleteCart(HttpSession session, @RequestParam(value="chbox[]") List chbox, CartVO cart) throws Exception { logger.info("delete cart"); MemberVO member = (MemberVO)session.getAttribute("member"); ...

chkbox[] 의 는 ajax에서 자바스크립트 키 값을 그대로 사용하면 된다.

from http://go-coding.tistory.com/60 by ccl(A) rewrite - 2021-02-24 14:01:38