spirngmvc js传递复杂json参数到controller
来源:互联网 发布:笔记本无线蹭网软件 编辑:程序博客网 时间:2024/06/05 11:17
转载地址:http://blog.csdn.net/mggwct/article/details/68486371
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。以下列举接收List<String>、List<User>、List<Map<String,Object>>、User[]、User(bean里面包含List)几种较为复杂的集合参数示例:
- 接收List<String>集合参数:
1、页面js代码:
Js代码
- var idList = new Array();
- idList.push(“1”);
- idList.push(“2”);
- idList.push(“3”);
- var isBatch = false;
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=deleteCatalogSchemes",
- dataType: 'json',
- data: {"idList":idList,"isBatch":isBatch},
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
2、Controller方法:
Java代码
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=deleteCatalogSchemes")
- @ResponseBody
- public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) {
- …
- }
- }
- 接收List<User>、User[]集合参数:
1、User实体类:
Java代码
- public class User {
- private String name;
- private String pwd;
- //省略getter/setter
- }
2、页面js代码:
Js代码
- var userList = new Array();
- userList.push({name: "李四",pwd: "123"});
- userList.push({name: "张三",pwd: "332"});
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=saveUsers",
- data: JSON.stringify(userList),//将对象序列化成JSON字符串
- dataType:"json",
- contentType : 'application/json;charset=utf-8', //设置请求头信息
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
3、Controller方法:
Java代码
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=saveUsers")
- @ResponseBody
- public AjaxJson saveUsers(@RequestBody List<User> userList) {
- …
- }
- }
如果想要接收User[]数组,只需要把saveUsers的参数类型改为@RequestBody User[] userArray就行了。
- 接收List<Map<String,Object>>集合参数:
1、页面js代码(不需要User对象了):
Js代码
- var userList = new Array();
- userList.push({name: "李四",pwd: "123"});
- userList.push({name: "张三",pwd: "332"});
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=saveUsers",
- data: JSON.stringify(userList),//将对象序列化成JSON字符串
- dataType:"json",
- contentType : 'application/json;charset=utf-8', //设置请求头信息
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
2、Controller方法:
Java代码
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=saveUsers")
- @ResponseBody
- public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) {
- …
- }
- }
- 接收User(bean里面包含List)集合参数:
1、User实体类:
Java代码
- public class User {
- private String name;
- private String pwd;
- private List<User> customers;//属于用户的客户群
- //省略getter/setter
- }
2、页面js代码:
Js代码
- var customerArray = new Array();
- customerArray.push({name: "李四",pwd: "123"});
- customerArray.push({name: "张三",pwd: "332"});
- var user = {};
- user.name = "李刚";
- user.pwd = "888";
- user. customers = customerArray;
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=saveUsers",
- data: JSON.stringify(user),//将对象序列化成JSON字符串
- dataType:"json",
- contentType : 'application/json;charset=utf-8', //设置请求头信息
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
3、Controller方法:
Java代码
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=saveUsers")
- @ResponseBody
- public AjaxJson saveUsers(@RequestBody User user) {
- List<User> customers = user.getCustomers();
- …
- }
- }
阅读全文
0 1
- spirngmvc js传递复杂json参数到controller
- js传递数组参数到后台controller
- js 自定义标签库 (传递多个参数到后台controller)
- SpringMVC之Controller传递JSON数据到页面
- SpringMVC之Controller传递JSON数据到页面
- SpringMVC 页面传递参数到controller的五种方式
- ibatis 传递复杂参数
- 从JS传递参数到action
- js传递数组参数到ActiveX
- Js中文参数传递到Php
- SpringMVC中,前台jsp封装参数,绑定参数,传递参数到后台controller的过程详解
- Unity传递复杂Json数据
- ios controller之间传递参数
- ios controller之间传递参数
- WebApi传递JSON参数
- Http传递json参数
- WebApi传递JSON参数
- SpirngMVC 提交表单数据到Controller时报400错误(The request sent by the client was syntactically incorrect.)
- MATLAB使用(一):设置matlab搜索路径,添加可以使用的工具箱
- jsp 页面怎么得到spring BindingResult 里面的错误消息
- Spring Boot使用Druid和监控配置
- 让input type=text 文本输入框的文字居中显示
- 消息队列五
- spirngmvc js传递复杂json参数到controller
- 小程序开发之获取token值
- Linux下安装JDK
- 112. Path Sum
- 利用OpenCV查找圆[HoughCircles]
- HTTP重定向负载均衡
- css网页大于屏幕分辨率,打开网页让网页居中显示
- python-day03-File
- 35 个 Java 代码性能优化总结