1. 程式人生 > >js傳遞陣列給java後臺

js傳遞陣列給java後臺

最近公司在做一個專案,需要前臺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 --

請各位大神不要見笑,只是將每天學的知識記錄下來!