ajax传递参数给springmvc一句话总结
来源:互联网 发布:mediawiki seo 编辑:程序博客网 时间:2024/04/29 13:39
http://blog.csdn.net/u011118321/article/details/53789854
ajax传递参数给springmvc一句话总结
通过ajax传递参数给springmvc,经常会因为 参数类型太复杂,或者根本不知道springmvc都支持哪些类型转换,导致后台接收出现各种问题。如果书写格式没有问题仍然接受参数报错,大部分是因为springmvc默认无法支持该种格式的json转换导致的
现在一句话解决,就是用@RequestBody注解接收
下面看一些传参的例子,基本涵盖了大部分的参数传递类型
案例1:简单数组 idList[]
ajax
$("#test1").on("click",function(){ var idList = new Array(); idList.push("1"); idList.push("2"); idList.push("3"); $.post("/mvc/client1/test1",{idList:idList}) });
java
/** * 简单类型list * explain:包含string int date 等属性 */ @RequestMapping("/test1") @ResponseBody public void test1(@RequestParam("idList[]") List<Integer> idList){ for(Integer i: idList){ System.out.println(i); } }
案例1中要注意,当你ajax传递一个很简单的数组,本以为后台能够接受到,却总是报错,很可能的原因是:http请求传递数组的时候,为了区别是一个数组,会在数组名称后面加上中括号“[]”,所以后台接受的时候用@RequestParam告诉方法,你要的idList实际上是idList[]就可以了
案例:2:简单对象User (包含id,username)
ajax
$("#test2").on("click",function(){ var id =1; var username ="fangxin"; $.post("/mvc/client1/test2",{id:id,username:username,birthday:new Date()}) });
java
@RequestMapping("/test2") @ResponseBody public void test2(User user){ System.out.println(user.getId()); System.out.println(user.getUsername()); System.out.println(user.getBirthday()); }
这就是最常见的传递参数,如果一个对象的属性都是简单类型,那基本没什么问题
案例3:复杂对象User (包含id,username,String[],List)
ajax
var user = { id:1, username:"fangxin", birthday:new Date(), luckyNums:[1,2,3], friends:[ {name:"zhangsan"}, {name:"lisi"} ] }; $.ajax({ type: "POST", url:"/mvc/client1/test3", data: JSON.stringify(user), contentType:"application/json" }) });
java
* 复杂对象 * explain:包含简单list属性、对象list属性 */ @RequestMapping("/test3") @ResponseBody public void test3(@RequestBody User user){ System.out.println(user.getId()); System.out.println(user.getUsername()); System.out.println(user.getBirthday()); for(Integer i:user.getLuckyNums()){ System.out.println(i); } for(Person p:user.getFriends()){ System.out.println(p.getName()); } }
案例4:复杂List
ajax
$("#test5").on("click",function(){ var users = []; for(var i=0;i<10;i++){ var user = { id:1, username:"fangxin", birthday:new Date(), luckyNums:[1,2,3], friends:[ {name:"zhangsan"}, {name:"lisi"} ] }; users.push(user); } $.ajax({ type: "POST", url:"/mvc/client1/test5/", data: JSON.stringify(users), contentType:"application/json" }) });
java
/** * 复杂List */ @RequestMapping("/test5") @ResponseBody public void test5(@RequestBody List<User> users){ for(User user:users){ System.out.println(user.getUsername()); } }
用案例3的方式,依然可以接收到,屡试不爽。
案例5 List
阅读全文
0 0
- ajax传递参数给springmvc一句话总结
- ajax传递参数给springmvc一句话总结
- springmvc ajax 传递list参数
- 使用ajax和springMVC传递复杂参数
- Jquery ajax传递复杂参数给WebService
- ajax传递给后台数组参数方式
- ajax传递给后台数组参数方式
- ajax传递给后台数组参数方式
- ajax传递给后台数组参数方式
- ajax传递给后台数组参数方式
- ajax传递给后台数组参数方式
- ajax传递给后台数组参数方式
- ajax传递给后台数组参数方式
- ajax跨域请求springmvc传递json对象参数
- Ajax 给 XMLHttpReq.onreadystatechange =函数 传递参数
- Jquery ajax传递复杂参数给WebService的实现代码
- Jquery ajax传递复杂参数给WebService的实现代码
- ajax传递给asp.net mvc 后台数组参数方式
- 如何利用tcpdump来确定外部设备是否连接到服务器?
- 手机号码即时验证:鼠标离开文本框的时候立刻验证
- (8)ajax发送put请求的两种方式
- Heartbeat,LVS ,Keepalived,Ldirectord功能及配置
- hdu6038
- ajax传递参数给springmvc一句话总结
- Tensorflow学习之实现多层感知机
- ThinkPHP多个数据库 配置文件怎么写呀? 特别注意两个数据库的表前缀不同时,怎么写表前缀,两种方法!!
- win7下通过easyBCD引导安装Ubuntu14.04(补充完善版)
- LVS(DR)+Keepalived高可用负载均衡器
- 第十四天java学习map的使用
- two weeks vim(1)
- 位数阶乘
- 设计模式-8-代理模式