고코딩
[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 |