1、@RequestBody:
@RequestBody用于解析前台请求携带的JSON数据。
后台代码举例:
@RequestMapping(value = "/testRequestBody", method = RequestMethod.PUT)
@ResponseBody
private Map testRequestBody(@RequestBody Test test) {
Map map = new HashMap();
//test对象包含id属性,拥有对应的get方法
if ("1".equals(test.getId())) {
map.put("status", 1);
return map;
} else {
map.put("status", 0);
return map;
}
}
前台代码举例:
$.ajax({
url: '/testRequestBody',
type: "PUT",
data: JSON.stringify({id:"1"}),
contentType: 'application/json',
dataType: 'json',
success: function(data) {
if (data.status == 1) {
console.log("成功!");
} else {
console.log("失败");
}
},
error: function() {
console.log("Ajax出错!");
}
});
说明:
1、前台Ajax请求的时候需要指明contentType: 'application/json'
2、前台Ajax请求的时候参数经过JSON.stringify()转化为JSON数据后,放进data(实际请求的URL还是原来的URL,后面不跟任何参数)
2、@PathVariable
@PathVariable直接将前台请求的URL末端指定的位置解析为请求携带的数据。
后台代码举例:
@RequestMapping(value = "/testPathVariable/{id}", method = RequestMethod.DELETE)
@ResponseBody
private Map testPathVariable(@PathVariable("id") String id) {
Map map = new HashMap();
if ("1".equals(id)) {
map.put("status", 1);
return map;
} else {
map.put("status", 0);
return map;
}
}
前台代码举例:
$.ajax({
url: '/testPathVariable/1',
type: "DELETE",
dataType: 'json',
success: function(data) {
if (data.status == 1) {
console.log("成功!");
} else {
console.log("失败!");
}
},
error: function() {
console.log("Ajax出错!");
}
});
说明:
1、前台Ajax请求的时候参数跟在URL后面,形式为 url: ' / 地址 / 参数值 '
3、@RequestParam
@RequestParam,获取URL携带的 ? 参数1 = XXX & 参数2 = XXX ... 形式的参数。
后台代码举例1:(将URL携带的 ? 参数1 = XXX & 参数2 = XXX ... 解析为Map集合)
@RequestMapping(value = "/testRequestParam", method = RequestMethod.POST)
@ResponseBody
private Map testRequestParam(@RequestParam Map condition) {
Map map = new HashMap();
String id= (String)condition.get("id");
String password= (String)condition.get("password");
if ("1".equals(id) && "2".equals(password)) {
map.put("status", 1);
return map;
} else {
map.put("status", 0);
return map;
}
}
后台代码举例2:(直接获取)
@RequestMapping(value = "/testRequestParam", method = RequestMethod.POST)
@ResponseBody
private Map testRequestParam(@RequestParam("id") String id,@RequestParam("password") String password) {
Map map = new HashMap();
if ("1".equals(id) && "2".equals(password)) {
map.put("status", 1);
return map;
} else {
map.put("status", 0);
return map;
}
}
前台代码举例:
$.ajax({
url: '/testRequestParam?id=1&password=2',
type: "POST",
dataType: 'json',
success: function(data) {
if (data.status == 1) {
console.log("成功!");
} else {
console.log("失败!");
}
},
error: function() {
console.log("Ajax出错!");
}
});
说明:
1、前台Ajax请求的时候参数跟在URL后面,形式为 url: ' / 地址 ? 参数 1 = XXX & 参数 2 = XXX ... '