1. 程式人生 > >前端向後臺傳送陣列引數的3種方法

前端向後臺傳送陣列引數的3種方法

首先要知道js中字串、陣列和json是如何互相轉換的。 陣列轉字串

var arr = [1,2,3,4];
var str = arr.join(',');
console.log(str); //顯示結果: 1,2,3,4

字串轉陣列

var str = '1,2,3,4';
var arr = str.split(',');
console.log(arr); // 顯示結果:["1", "2", "3", "4"](陣列)

字串轉陣列,陣列轉json,json轉陣列

var str = '1,2,3,4';
var arr = str.split(',');
var strify = JSON.stringify(arr);//
將陣列轉化為json字串 console.log(arr); // 顯示結果:["1", "2", "3", "4"](陣列) console.log(strify); //顯示結果: ["1", "2", "3", "4"](json字串,"[""]"也是字串的一部分) var arrParse = JSON.parse(strify); console.log(arrParse); //顯示結果:["1", "2", "3", "4"](陣列)

前端js程式碼:

<script type="text/javascript">
    $(function(){
        $("#reserve_btn"
).click(function(){ if($('#dg').datagrid('getSelections').length==0){ $.messager.alert("訊息提示",'請選擇要預訂的房間','error'); }else{ var room_nos=[]; var array=$('#dg').datagrid('getSelections'); for(var i in array){ room_nos.push(array[i].room_no); } console.log(room_nos); $.post('../clientController/reserveRooms.action'
,{'room_nos':room_nos.join(',')},function(flag){ alert(flag) })//方法一:陣列轉化成字串,傳字串到後臺 /* $.post('../clientController/reserveRooms.action',{'room_nos':JSON.stringify(room_nos)},function(flag){ alert(flag) })//方法二:陣列轉化成json字串,傳json字串到後臺 $.ajax({ url: '../clientController/reserveRooms.action', type: 'post', data: {'room_nos':room_nos}, traditional:true,//用傳統方式序列化資料 success:function(flag){ alert(flag) } })//方法三:通過設定traditional屬性為true直接傳遞陣列 */ } }) }) </script>

後臺controller程式碼

    @RequestMapping(value="reserveRooms")
    @ResponseBody
    public String reserveRooms(@Param("room_nos") String room_nos) {
        System.out.println(room_nos);
        return "OK";
    }