반응형

Spring Framework는 4.1.7, jQuery는 2.1.4 버전을 사용하여 테스트함.


[Front-End]


<head>
<script>
function checkboxArr() {
    var checkArr = [];     // 배열 초기화
    $("input[name='test_check']:checked").each(function(i)) {
        checkArr.push($(this).val());     // 체크된 것만 값을 뽑아서 배열에 push
    }

    $.ajax({
        url: 'test_check'
        , type: 'post'
        , dataType: 'text'
        , data: {
            valueArrTest: checkArr
        }
    });
}
</script>
</head>


    <input type="checkbox" name="test_check" value="1" />
    <input type="checkbox" name="test_check" value="2" />
    <input type="checkbox" name="test_check" value="3" />
    <input type="checkbox" name="test_check" value="4" />


[Back-End]


@RequestMapping(value = "/test_check", method = RequestMethod.POST)
@ResponserBody
public void testCheck(@RequestParam(value = "valueArrTest[]") List<String> valueArr) {
    // TODO
}


Back-End단에서 받을땐 String[] 형식으로 하면 안되고, List<String> 형태로 사용해야 된다.

 

예전에는 for loop돌면서 delimiter를 정해서 String하나로 만들어 넘기거나, checkbox의 이름을 각각 다르게 정해서 조합해서 억지로 넘겼던 기억이 있는데, 위 방법으로 하면 깔끔하게 정리가 된다.

반응형
,