비동기 전송을 위해서 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에서 자바스크립트 키 값을 그대로 사용하면 된다.
'MSA' 카테고리의 다른 글
@RequiredArgsConstructor 어노테이션을 사용한 "생성자 주입" (0) | 2023.04.11 |
---|---|
ORM의 개념, JPA와 MyBatis 차이 (0) | 2023.04.02 |
[Spring Boot #6] 스프링 부트 내장 웹 서버 톰캣(tomcat) 설정 (0) | 2023.04.02 |
[마이크로서비스 아키텍처 : 패턴과 핵심 기술] MSA를 위한 기술 - Spring Boot와 Spring Cloud (0) | 2023.04.01 |
[스프링부트 (2)] SpringMVC(1) Controller 생성하기 (0) | 2023.04.01 |
댓글