springMVC使用jQuery的Ajax
使用@RequestBody 接收前台传递的json 集合数据。
首先:从spring3.1开始只要配置了<mvc:annotation-driven /> 就不用再配置其他转换器了。
在前台js中创建JSON字符串。如[{name:'11',age:12},{name:'222',age:15}],一定使用JSON.stringify将该json对象转换为json字符串,因为@RequstBody只接受json字符串。
示例:
$("#saveUser").click(function() { var users = [{ name : '张三', age : 18, birth : '2014-11-11' }, { name : '王五', age : 18, birth : '2014-11-11' }, { name : '李四', age : 18, birth : '2014-11-11' } ]; $.ajax({ type : 'POST', data:JSON.stringify(users), contentType : 'application/json', dataType: 'json', url : 'user/saveJsonUser.do', success : function(data) { alert("OK"); }, error : function(e) { alert("error"); } }); });
使用Ajax提交数据需要注意的是:contentType : 'application/json',dataType: 'json',这两个属性必须这样设置。
controller中的处理方法的形参需要添加注解@RequestBody 而且形参必须是数组或者list。
如:@RequestBody User[] users
示例:
/** * 使用@RequestBody接受前台传递的一组json数据 * @param users * @return */ @RequestMapping(value="/saveJsonUser.do",method=RequestMethod.POST) public String saveJsonUser(@RequestBody User[] users){ for (User user2 : users) { System.out.println(user2); } System.out.println(users); return "saveUser"; }
使用@ResponseBody返回指定形式的返回值。
在返回值类型前添加@ResponseBody注解之后,spring不会再对返回的url进行解析,而是直接将返回的对象转化成对应的字符串形式放入respons的流中输出到客户端。
如果返回的为字符串,则直接将该字符串输出到客户端。
示例:
/** * 使用@ResponseBody返回普通字符串。 * @param name * @return */ @RequestMapping(value="/checkName.do") public @ResponseBody String checkName(String name){ name = "userName is:"+name; return name; }
如果是其他形式的对象,则spring会自动将这些对象转换为对应的json形式的字符串,然后将字符串输出到客户端。
示例:
/** * 使用@ResponseBody返回一个对象集合。 * @param name * @return */ @RequestMapping(value="/getUsers.do") public @ResponseBody List<User> getUsers(){ List<User> us = new ArrayList<User>(); us.add(new User("张三", 12, new Date())); us.add(new User("张四", 13, new Date())); us.add(new User("张五", 14, new Date())); return us; }
/** * 使用@ResponseBody返回一个对象。 * @param name * @return */ @RequestMapping(value="/getUser.do") public @ResponseBody User getUser(){ return new User("老黑",45,new Date()); }
相关推荐
JudeJoo 2020-08-21
meleto 2020-08-15
玫瑰小妖 2020-07-18
dlutbob 2020-07-04
zmysna 2020-07-04
小鱿鱼 2020-06-26
MicroBoy 2020-06-17
zhongliwen 2020-06-13
zhongliwen 2020-06-13
qingjiuquan 2020-06-07
牧场SZShepherd 2020-06-03
zhangdy0 2020-05-31
spring艳 2020-05-30
方志朋 2020-05-30
咻pur慢 2020-05-27
mxcsdn 2020-05-27
牧场SZShepherd 2020-05-18
HappyHeng 2020-05-16