기록/Web
[Spring][Ajax] Javascript를 통해 checkBox값 넘기기
3.
2021. 5. 6. 01:50
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