Programming Language/Java
[Java] 배열 데이터 전송 받기
HoZang
2019. 1. 8. 01:43
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"; } }
도움이 되셨다면 공감이나 좋아요 부탁드립니다~♡
광고를 클릭해주시면 더욱 감사하구요~♡v♡/
혹시 더 궁금하신 점이나 부족한 부분, 잘못된 내용이 있다면 댓글 부탁드립니다~~