Spring MVC Controller 接收ajax傳來的數組參數

Spring MVC Controller 接收ajax傳來的數組參數

var arry = ['1','2','3'];
//就是最普通的jquery ajax向後臺直接發送數據
$.ajax({
    type:'post',
    url:'/demo/path',
    //traditional默認是false,若是是false,則傳遞的參數爲:
    //data[]:1
    //data[]:2
    //data[]:3
    //這裏設置爲true,使傳遞參數變成:
    //data:1
    //data:2
    //data:3
    //不過不管哪一種實際上都不影響後臺接受,稍做區分便可,下面會提到
    traditional: true,
    data:{
        data:arry
    },
    success:function(result){
        console.info(result);
    }
});

下面是controller接受數則參數的方法,須要使用RequestParam指明value名稱,正如上面所說,若傳遞的數據格式是data[]:3,則RequestParam的value是data[], 若傳遞的數據格式是data:3,則RequestParam的value是data,後面既能夠用List接收,也能夠用數組接收.jquery

@RequestMapping("/demo/path") //traditional默認是true方式
public boolean createRsp(@RequestParam(value = "data")String[] data) {
    System.out.println("--data-size-"data.length);
	return false;
}

@RequestMapping("/demo/path") //traditional默認是flase方式
public boolean createRsp(@RequestParam(value = "data[]")String[] data) {
    System.out.println("--data-size-"data.length);
	return false;
}

上面用到了jQuery ajax的traditional參數,那麼他的做用是什麼:ajax

一句話:規定是否使用傳統的方式進行序列化(參數序列化)。 默認的話traditional爲false,即jquery會深度序列化參數對象,traditional 爲true阻止深度序列化。數組

相關文章
相關標籤/搜索