본문 바로가기

For DEVELOPER/JAVASCRIPT

[JAVASCRIPT] ajax로 String 배열 data 넘기기 :: AJAX

728x90
반응형

Ajax를 이용하면 웹 어플리케이션과 비동기적으로 데이터를 주고 받은후 클라이언트에서 해당 데이터에 대한 처리를 할 수 있다. 쉽게 이야기하면 Ajax를 이용할 경우 별도의 웹 페이지를 호출하지 않더라도, 클라이언트 화면을 유지한채 다른 페이지를 호출할 수 있다.

이러한 Ajax를 jQuery를 이용하면 정말 손쉽게 사용할 수 있는데, 기본적인 설정값만 넣어주면 바로 사용이 가능하다.
ajax 의 data 값에 배열(Array)을 넘기기 위해서는 세팅값을 바꿔주어야 한다.

var addList = [], data = {};
 
if($("#addList_column li").length != 0){
    for(var i=0; i<$("#addList_column li").length; i++)
        addList[i] = $("#addList_column li a").eq(i).attr('name');
        
    data.addList = addList;
}else data.addList = "";
        
 
jQuery.ajaxSettings.traditional = true;
        
$.ajax({
    type: 'get',
    dataType: 'xml',
    data: data,
    url: '/register/registerSaveUserList.do',
    success: function(xml) {
        if($(xml).find("code").find("item").length > 0) {
            $(xml).find("code").find("item").each(function() {
                var code_name = $(this).find("code_name").text();
                var code_id = $(this).find("code_id").text();
                            
                $("#make_lst").append("<li><a href='#' class='no' id='"+code_id+"'>"+code_name+"</a></li>");
            });  
        }
    },
    error: function(xhr, status, error) {
        alert(status);
        alert(error);
    }
});

 

보낸 데이터를 컨트롤러(서버단)에서 String[] 또는 ArrayList 로 받으면 된다.

@RequestMapping(value="/register/registerSaveUserList.do")
public void registerSaveUserList(ModelMap model, HttpServletRequest request, 
HttpServletResponse response, HttpSession session) throws Exception {
        
    String[] param = request.getParameterValues("addFind");
    String[] param2 = request.getParameterValues("addList");
 
    for(int i=0; i<param.length; i++) System.out.println("■■■■■■■■■■■addFind:::"+param[i]);

 

***  jQuery.ajaxSettings.traditional = true;  세팅을 안해줄 경우에는

Java 에서 ​ String[] param = request.getParameterValues("addFind[]"); 로 처리하면 된다. 

반응형