고코딩
[Spring]Ajax에서 보낸 배열을 Controller에서 받기 본문
비동기 전송을 위해서 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<String>
형으로 받아와야 한다.
@ResponseBody
@RequestMapping(value = "/deleteCart", method = RequestMethod.POST)
public int deleteCart(HttpSession session,
@RequestParam(value="chbox[]") List<String> chbox, CartVO cart) throws Exception {
logger.info("delete cart");
MemberVO member = (MemberVO)session.getAttribute("member");
...
chkbox[]
의 는 ajax에서 자바스크립트 키 값을 그대로 사용하면 된다.
'Spring 공부' 카테고리의 다른 글
[Spring] SpringBoot와 Swagger 간단 연동 (0) | 2021.05.01 |
---|---|
[Spring] Spring Security관련 좋은 정리 글 (0) | 2021.04.26 |
[SpringBoot] GSON을 이용해 json 타입 보내는 방법 (0) | 2021.04.20 |
[SpringBoot] Spring Properties editor가 보이지 않을때(eclipse) (0) | 2021.04.15 |
Project-Clean 또는 Tomcat Server clean 후 root path 설정 (0) | 2021.02.16 |