Spring MVC 中 AJAX请求并返回JSON

一、以ModelAndView的方式返回

先看下JavaScript代码:

 1 /**
 2  * 保存-同步(版本控制库)
 3  */
 4 function saveSynchronizedVcHorse(obj) {
 5     var ss = $("#SynchronizedSelection div");
 6     var cacheSelectAry = new Array()
 7     for(var i = 0; i < ss.length; i ++) {
 8         //alert(ss.eq(i).html());
 9         //alert(ss.eq(i).find(‘label‘).html());
10         var o=ss.eq(i).find(‘label‘).find("input[type=‘checkbox‘]");
11
12         var s = $(o).attr(‘checked‘);//由于$(obj).attr("checked", false); checked属性会被
13         if(s != null) {
14             cacheSelectAry.push($(o).attr(‘value‘));
15         }
16     }
17     if(cacheSelectAry.length == 0) {
18         alert("请选择城市");
19         return;
20     }
21     var json = "SynchronizedBean={\"exceptionId\":\""+exceptionId+"\",\"cityIds\":["
22     for(var i = 0; i < cacheSelectAry.length; i ++) {
23         if(i == cacheSelectAry.length -1) {
24             json = json +"\""+ cacheSelectAry[i] + "\"";
25         } else {
26             json = json + "\"" + cacheSelectAry[i] + "\",";
27         }
28     }
29     json = json + "]}";
30     $.ajax({
31            type: "POST",
32            dataType: "json",
33            url: "../main/saveSynchronizedData",
34            data: json,
35            success: function(msg){
36                alert(msg.main);
37            },
38            error: function () {//XMLHttpRequest, textStatus, errorThrown
39                alert("请求失败");
40            }
41     });
42 }

主要是看ajax请求部分。

再看Spring 中控制器的代码:

 1 @RequestMapping(value = "/saveSynchronizedData", method = RequestMethod.POST)
 2     public @ResponseBody ModelAndView saveSynchronizedData(@RequestParam("SynchronizedBean") String mSynchronizedJSON) {
 3         ObjectMapper objectMapper = new ObjectMapper();
 4         Map<String, String> map = new HashMap<String, String>();
 5         try {
 6             SynchronizedBean bean = objectMapper.readValue(mSynchronizedJSON, SynchronizedBean.class);
 7             if(bean != null) {
 8                 String[] ary = bean.getCityIds();
 9                 if(ary != null && ary.length > 0) {
10                     for(String s : ary) {
11                         VCHousePo po = new VCHousePo();
12                         po.setExceptionId(bean.getExceptionId());
13                         po.setCustomerCode(s);
14                         po.setCreateTime(new Date());
15                         po.setExceptionState(0);
16                         vcHService.add(po);
17                     }
18                 }
19             }
20             map.put("msg", "success");
21         } catch (JsonParseException e) {
22             e.printStackTrace();
23             map.put("msg", "error");
24         } catch (JsonMappingException e) {
25             e.printStackTrace();
26             map.put("msg", "error");
27         } catch (IOException e) {
28             e.printStackTrace();
29             map.put("msg", "error");
30         }
31         return new ModelAndView(new MappingJackson2JsonView(),map);
32     }

这里是通过ModelAndView的方式进行返回JSON的。另外:MappingJackson2JsonView使用的package是

import org.springframework.web.servlet.view.json.MappingJackson2JsonView;

二、返回String的形式

这种方式不做实验,请查看http://hw1287789687.iteye.com/blog/2128304

时间: 2025-01-06 07:27:03

Spring MVC 中 AJAX请求并返回JSON的相关文章

Ajax请求php返回json对象数据中包含有数字索引和字符串索引,在for in循环中取出数据的顺序问题

//php中的数组数据格式 Array ( [all] => Array ( [title] => ALL [room_promotion_id] => all ) [best_available_rate] => Array ( [title] => Best Available Rate [room_promotion_id] => best_available_rate ) [30] => Array ( [room_promotion_id] =>

SpringMVC Ajax请求时返回json中文字符串的乱码问题的解决方案

1.org.springframework.http.converter.StringHttpMessageConverter类是处理请求或相应字符串的类,并且默认字符集为ISO-8859-1,所以在当返回json中有中文时会出现乱码. 2.StringHttpMessageConverter的父类里有个List<MediaType> supportedMediaTypes属性,用来存放StringHttpMessageConverter支持需特殊处理的MediaType类型,如果需处理的Me

Ajax请求ashx 返回 json 格式数据常见问题

问题:ashx 返回的字符串json格式,在前台ajax自动解析失败. 问题分析:经过排查,发现是拼接json时出现” ’  “单引号,jquery无法解析,用” “ “双引号才可以.例如: string strjson="[ { 'userName':'test'}]"; //单引号导致jquery无法自动解析. string strjson="[ {\"userName\":\"test\"}]"; // 双引号可以解析:

【转】解决spring mvc 中ajax返回json乱码问题

转载自:http://my.oschina.net/u/140421/blog/176625 转载自:http://my.oschina.net/candon/blog/149073?fromerr=I9VBOy62 第一个转载: 在使用spring-mvc的mvc的时候既享受它带来的便捷,又头痛它的一些问题,比如经典的中文乱码问题.现在是用json作为客户端和服务端 的数据交换格式貌似很流行,但是在springmvc中有时候会因为我们的各种疏忽从而造成页面ajax请求到的相应数据,如果带有中文

Spring MVC控制器用@ResponseBody声明返回json数据报406的问题

本打算今天早点下班,结果下午测试调试程序发现一个问题纠结到晚上才解决,现在写一篇博客来总结下. 是这样的,本人在Spring mvc控制层用到了@ResponseBody标注,以便返回的数据为json格式的数据,到前端JS中用. 问题来了,当我用火狐调试发现请求总是报:406 Not Acceptable,message:description The resource identified by this request is only capable of generating respon

使用ajax请求SpringMVC返回Json出现乱码解决方法

1:在使用ajax请求后台访问数据的数据,后台返回的数据是乱码,带??问号的乱码,之前还一直没有遇到过,在这里记录整理一下,贴出解决代码! (1):前台使用ajax ,已经设定返回的结果为json格式!ajax代码不贴出来了! (2):后台代码 @RequestMapping(value = { "/hello/{uuid}" }, method = RequestMethod.GET /*,produces = "text/html;charset=UTF-8"*

spring mvc ajaxfileupload文件上传返回json下载问题

问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/addAnalysis", method = RequestMethod.POST) public void addAnalysisUI( HttpServletResponse response,HttpServletRequest request,HttpSession session, @Requ

关于ajax请求,返回json数据格式

使用servlet测试 后台数据为:返回类型没有设置(方式一) 1 String str = "["+ 2 "{ id:1, pId:0, name:\"可折腾的父节点 1\", t:\"我很普通,随便 展开/折叠 我吧\", open:false},"+ 3 "{ id:11, pId:1, name:\"叶子节点 - 1\", t:\"我老爸很普通,随便折腾他吧\"},&q

spring mvc 下ajax请求返回值问题

$.ajax({ url:"url", data:{Value:value}, dataType:"text", success:function(data){} }) JsonArray rejs = JsonArray.fromObject(); request.setCharacterEncoding("utf-8"); //这里不设置编码会有乱码 response.setContentType("text/html;charse