ajax로 데이터 넘기기

Back-End/Spring 2019. 8. 14. 16:31
728x90
반응형

HTML부분

 

1
2
3
4
<input type="hidden" id="userId" value="abcd">
<input type="checkbox" name="hobby" value="독서">
<input type="checkbox" name="hobby" value="운동">
<input type="checkbox" name="hobby" value="전시관람">
cs

 

 

 

이제 javascript단에서 데이터를 불러와서 ajax 방식으로 넘긴다.

 

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
function ajaxExample(){
    // 사용자 ID를 갖고 온다.
    var userId = $("#userId").val();
 
    // name이 같은 체크박스의 값들을 배열에 담는다.
    var checkboxValues = [];
    $("input[name='hobby']:checked").each(function(i) {
        checkboxValues.push($(this).val());
    });
     
    // 사용자 ID(문자열)와 체크박스 값들(배열)을 name/value 형태로 담는다.
    var allData = { "userId": userId, "checkArray": checkboxValues };
     
    $.ajax({
        url:"goUrl.do",
        type:'GET',
        data: allData,
 
 
//데이터 전송이 완료되면 출력되는 메시지
 
        success:function(data){
            alert("완료!");
            window.opener.location.reload();
            self.close();
        },
 
//에러가 발생되면 출력되는 메시지
 
        error:function(jqXHR, textStatus, errorThrown){
            alert("에러 발생~~ \n" + textStatus + " : " + errorThrown);
            self.close();
        }
    });
}
cs

 

 

Spring Controller에서 데이터를 받을때는 배열은 배열로, String 타입은 String 타입으로 받으면 된다.

 

@RequestParam(value="checkArray[]") List<string> arrayParams, 

 

@RequestParam(value="userId") String userId

 

 

만약 @RequestParam HashMap param으로 받을 경우, 배열은 첫번째 값만 넘어간다. 

 

그러니 배열은 반드시 List로 넘겨야한다.

 

 

아래 책은 제가 공부할때 활용했던 책으로 추천드리는 책이니 한번씩 읽어보시는것을 추천드립니다!! ㅎㅎ

토비의 스프링 3.1 세트:스프링의 이해와 원리 + 스프링의 기술과, 에이콘출판

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

출처

https://zero-gravity.tistory.com/241

728x90
반응형
: