js傳遞陣列給java後臺
阿新 • • 發佈:2019-01-04
最近公司在做一個專案,需要前臺js給後臺傳遞陣列引數,可是到網上查了下資料比較少,現將各方蒐集的資料記錄下來,以備以後使用!
1.首先貼出js程式碼
$scope.logindo = function() { var uphone = $scope.user.tel; var pwd = $scope.user.pwd; var arrays = new Array();//定義一個數組 arrays[0] = uphone;//將獲取的值賦進去 arrays[1] = pwd; $http({ method : 'get', url : '../memquery?params=' + JSON.stringify(arrays)//使用json傳遞 + '&opId=10001&cityId= }).success(function(data) { alert(JSON.stringify(data)); alert("成功"); }).error(function() { alert("提交失敗"); }); };
2.JSON.stringify()在ie6,ie7,ie8(相容模式)不支援,需引入json2.js,其他瀏覽器能直接使用!
3.JSON.stringify(obj)方法返回值如下:
4.將轉換後的物件傳遞到java後臺,後臺通過request.getParameter("params")得到後,使用json進行解析得到陣列,此處需要引入以下jar包
5.貼出後臺controller部分程式碼如下:
// 查詢結果集 @RequestMapping(value = "/memquery", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") @ResponseStatus(HttpStatus.OK) public @ResponseBody List memQuery(String cityId, String sessionId, int opId, String params,HttpServletRequest request) { List<Map<String, Object>> list = null; JSONArray jsonArray = JSONArray.fromObject(params); Object[] obj = CommFunctions.toArrays(jsonArray); System.out.println("*********"+Arrays.toString(obj)+"**********"); }
//CommFunctions下的toArrays方法
public static Object[] toArrays(JSONArray ja){
Object[] objs = new Object[ja.size()];
for (int i = 0; i < ja.size(); i++) {
objs[i] = ja.get(i);
}
return objs;
}
6.最後檢視控制檯輸出結果
-- the end --
請各位大神不要見笑,只是將每天學的知識記錄下來!