티스토리 뷰

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♡/

혹시 더 궁금하신 점이나 부족한 부분, 잘못된 내용이 있다면 댓글 부탁드립니다~~


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함