본문 바로가기
웹개발/js

javascript / ajax 배열 request 전송 및 java에서 받기

by heavenLake 2021. 8. 11.
반응형

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 [호짱의 개발 블로그]

반응형

댓글