前后端——json的传值与接收(springMvc)

前端传值:

通过将要传输的数据封装为json,然后再通过ajax接收:

JSON.stringify(data)

后端接收值只需要通过一句话即可实现:

@RequestBody String param

此处的param就是你所接收的值
具体如何解析:

JSONObject jo=new JSONObject();
List<Map> parseArray = jo.parseArray(param, Map.class);
System.out.println("parseArray="+parseArray);

只需要这几句话即可
下面举一个小demo:
前端:

		$("#excelOutput").click(function(){
            	console.log("传出的数据="+JSON.stringify(excelData))
				$.ajax({
					url : "${App_Path}/excel",
					data:JSON.stringify(excelData),
					type : "post",
					dataType: "json",
					contentType: "application/json; charset=utf-8",//此处不能省略
					success : function(data) {
                        alert("success")
							},
					error:function(){
                        alert("fail")
					}
				});
		})

后端:

	@ResponseBody
	@RequestMapping(value = "/excel", method = RequestMethod.POST)
	public Msg excel(@RequestBody String param) throws Exception {
		System.out.println("param="+param);
		JSONObject jo=new JSONObject();
		List<Map> parseArray = jo.parseArray(param, Map.class);
        System.out.println("parseArray="+parseArray);
        for (Map map:parseArray) {
		System.out.println("map="+map);
		}
		return null;	
	}

以上就是传值与接收值的具体情况,当然也可以封装一个bean对象,直接转为bean也行

下面继续拓展一个springMvc的知识,如果前端传值是通过这种方式:

$("#excelOutput").click(function(){
            	console.log("传出的数据="+JSON.stringify(excelData))
				$.ajax({
					url : "${App_Path}/excel/"+result,
					data:JSON.stringify(excelData),
					type : "post",
					dataType: "json",
					contentType: "application/json; charset=utf-8",//此处不能省略
					success : function(data) {
                        alert("success")
							},
					error:function(){
                        alert("fail")
					}
				});
		})

上面传了两个值,一个是result,一个是excelData,看后端怎么处理:

@ResponseBody
	@RequestMapping(value = "/excel/{result}", method = RequestMethod.POST)
	public Msg excel(@RequestBody String param,@PathVariable String result) throws Exception{
        System.out.println("param="+param);
        System.out.println("result="+result);//result就是url : "${App_Path}/excel/"+result中的result
		JSONObject jo=new JSONObject();
		List<Map> parseArray = jo.parseArray(param, Map.class);
        System.out.println("parseArray="+parseArray);
        for (Map map:parseArray) {
		System.out.println("map="+map);
		}
		return null;	
	}

你可能感兴趣的:(spring,mvc,java)