JSON

SpringMVC+AJAX+JSON

字号+ 作者:H5之家 来源:H5之家 2018-02-13 14:18 我要评论( )

在做一个ajax发送json到springmvc的控制层,控制层的对象中有一个List集合,ajax调用总是报415错误。发现了一个一直没有注意到的问题,借机记录一下。 (细节部分

  在做一个ajax发送json到springmvc的控制层,控制层的对象中有一个List集合,ajax调用总是报415错误。发现了一个一直没有注意到的问题,借机记录一下。

技术分享图片

(细节部分都忽略了,在最后的demo项目地址中会有。这里只写主要的步骤)

一、添加pom.xml依赖

  springmvc的pom.xml依赖在demo工程里都有,这里主要强调要添加以下两个依赖,否则@RequestBody@ResponseBody这两个注解就不起作用。

com.fasterxml.jackson.corejackson-corecom.fasterxml.jackson.corejackson-annotationscom.fasterxml.jackson.corejackson-databindcom.fasterxml.jackson.jaxrsjackson-jaxrs-json-provider

二、Controller层

package org.hope.lee.controller; import org.hope.lee.model.User; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSONObject; @Controller @RequestMapping("/user") public class UserController { @RequestMapping("index") public ModelAndView toAddUserPage() { return new ModelAndView("addUser"); } @RequestMapping(value = "/add",method = RequestMethod.POST) @ResponseBody public ResponseEntity<String> addUser(@RequestBody User user) { JSONObject object = new JSONObject(); object.put("success", "成功"); return new ResponseEntity<>(object.toString(), HttpStatus.OK); } }

三、JSP页面

  注意"②"处的代码,这种方式传递list参数给controller层种的@RequestBody对象是会报415错误的。我发现是因为"②"处addresses的value会多一个双引号

  {"name":"李四","age":"59","gender":"男","addresses":"[{\"addressName\":\"A区\"},{\"addressName\":\"B区\"}]"}。

pageEncodingInsert title here $(document).ready(function() { $(() { ).val(); ).val(); ).val(); ); checked_val = []; checkedParams){ if(checkedParams[k].checked) checked_val.push(checkedParams[k].value); }; Array(); ) { arr.push({:checked_val[i]}); } JSON.stringify(arr); { name : vname, age : vage, gender : vgender, addresses:arrs } console.log( JSON.stringify(params)); console.log( params2); $.ajax({ url : , type : , data : params2, // , contentType : , beforeSend: function() { }, success : function(data) { alert(); }, error : function(XMLHttpRequest, textStatus, errorThrown) { console.log(textStatus ); } }); }); }); 姓名: 年龄: 性别: 男: 女: 地址: A区 B区 C区保存

 

https://gitee.com/huayicompany/spring-learn/tree/master/springmvc-json

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Python学习笔记(九)json数据类型

    Python学习笔记(九)json数据类型

    2018-01-28 11:18

  • NodeJS技巧

    NodeJS技巧

    2018-01-24 12:02

  • java Json 技术记录

    java Json 技术记录

    2017-12-13 17:11

  • ASP.NET Core教程【一】关于Razor Page的知识

    ASP.NET Core教程【一】关于Razor Page的知识

    2017-11-30 18:05

网友点评
f