반응형
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 [호짱의 개발 블로그]
반응형
'웹개발 > js' 카테고리의 다른 글
쿠키등록 ( 팝업창 하루동안 열지 않기 & 하루에 한번만 띄우기) (0) | 2022.02.18 |
---|---|
JavaScript 키보드 이벤트 생성 (0) | 2022.02.17 |
Javascript에서 DOM의 특정 요소(element) 찾는 방법 (0) | 2022.02.17 |
Selection 과 Range 사용자가 드래그 등으로 선택한 텍스트 및 위치 (0) | 2021.08.11 |
javascript Document - 노드 다루기 (찾기, 생성, 삭제) (0) | 2021.08.11 |
댓글