본문 바로가기

기록/Web

[Spring][Ajax] Javascript를 통해 checkBox값 넘기기

SMALL

Form에서 CheckBox 내용을 컨트롤러로 받을 때 몇가지 주의사항이 있다.

 

checkBox의 내용이 겹치지 않는 것을 감안하여 Set<String>을 사용했는데 제대로 동작하지 않았다.

찾아보니 checkBox의 모든 내용을 가져오기 위해서는 List<String> 형태로 가져와야 한다.

 

Ajax에서 Controller로 넘겨줄 때에도 script 문법에서 Array를 사용하여 배열로 생성해주고, 배열값을 넘겨준다.

그래서 Controller에서 @ReuqestMapping 어노테이션을 사용하여 받을 때에도 '변수이름[]'형태로 받는다.

 

참고 코드

 

Ajax

function checkForm() {
    var genreArray = new Array();

    $('input:checkbox[name=genre]:checked').each(function() {
        genreArray.push(this.value);
    });
    
    //other code
}

Controller

 public Map<String, Object> insert(
            @RequestParam("genreArray[]") List<String> genreArray) throws Exception {
        Iterator<String> it =  genreArray.iterator();

        //DB <- Genre processing
        //conrtollerprocessing
    }

 

SMALL