您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js实现传递复杂json参数到controller

2024/10/16 4:58:21发布19次查看
spring mvc在接收集合请求参数时,需要在controller方法的集合参数里前添加@requestbody,而@requestbody默认接收的enctype (mime编码)是application/json,因此发送post请求时需要设置请求报文头信息,否则spring mvc在解析集合请求参数时不会自动的转换成json数据再解析成相应的集合。
以下列举接收listf7e83be87db5cd2d9a8a0b8117b38cd4、list4c8e0c17c3bd7e0081bb17cc795e1984、lista06c5c2dfccfdea21bf0b155d9343663>、user[]、user(bean里面包含list)几种较为复杂的集合参数示例:
接收listf7e83be87db5cd2d9a8a0b8117b38cd4集合参数:
1、页面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方法:
@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实体类:
public class user { private string name; private string pwd; //省略getter/setter }
2、页面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方法:
@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对象了):
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方法:
@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实体类:
public class user { private string name; private string pwd; private list<user> customers;//属于用户的客户群 //省略getter/setter }
2、页面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方法:
@controller @requestmapping("/catalog.do") public class catalogcontroller { @requestmapping(params = "fn=saveusers") @responsebody public ajaxjson saveusers(@requestbody user user) { list<user> customers = user.getcustomers(); … } }
相关推荐:
mvc中获得controller、url及action的asp.net方法详解
以上就是js实现传递复杂json参数到controller的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product