웹개발/js
javascript / ajax 배열 request 전송 및 java에서 받기
heavenLake
2021. 8. 11. 15:07
반응형
Java에서 배열 데이터 전송 받기
1. 전송 form
<form action="/process.do" method="post" name="testForm">
<input type="text" name="name" value="홍길동">
<input type="text" name="name" value="김철수">
<input type="text" name="name" value="이영희">
</form>
PHP와는 다르게 input name에 배열표시 '[]'를 넣지 않아도 된다.
위와같은 데이터를 Controller에서 받을 경우
2. controller
@Controller
public class TestController {
@RequestMapping(value = "/process.do")
public String testMethod(HttpServletRequest request, Model model) {
String[] arrayParam = request.getParameterValues("name");
for (int i = 0; i < arrayParam.length; i++) {
System.out.println(arrayParam[i]);
}
return "view.jsp";
}
}
3. 출력
홍길동
김철수
이영희
단 특이한 것은 Ajax로 전송할 때 get parameter 형태(?name=홍길동&name=김철수&name=이영희)가 아닌
Object의 배열 형태({ name : [ "홍길동", "김철수", "이영희" ] })로 전송하면 controller에서 전송받은 데이터의
parameter name에 자동으로 배열표시'[]'가 붙는다.
4. Ajax방식을 사용하여 배열로 전송
<script>
var formData = {
"name": [ "홍길동", "김철수", "이영희" ];
};
$.ajax({
type: "post",
url: "/process.do",
dataType: "json",
data: formData,
success: function (data) {
}
});
</script>
5. Ajax방식을 사용하여 Object의 배열로 전송 받은 controller
@Controller
public class TestController {
@RequestMapping(value = "/process.do")
public String testMethod(HttpServletRequest request, Model model) {
String[] arrayParam = request.getParameterValues("name[]");
for (int i = 0; i < arrayParam.length; i++) {
System.out.println(arrayParam[i]);
}
return "view.jsp";
}
}
출처: https://baejangho.com/entry/JAVA-request-array [호짱의 개발 블로그]
반응형