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