1. 处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解: @PathVariable;
@GetMapping("article/{id}")
public void article(@PathVariable("id") String id) {
logger.info("文章{}",id);
//业务逻辑
}
2. 处理request header部分的注解: @RequestHeader, @CookieValue;
3. 处理request body部分的注解:@RequestParam, @RequestBody;
GET请求不能用@RequestBody来接收参数
@RequestBody 注解,必须与 contentType 类型application/json配合使用。
@RequestParam 注解,必须与 contentType 类型application/x-www-form-urlencoded配合使用,其为默认类型。
JSON.stringify() 把对象类型转换为字符串类型,一般配合 @RequestBody 注解和contentType 类型application/json使用。
- 处理attribute类型是注解: @SessionAttributes, @ModelAttribute;
var param = {
"title": "爪哇笔记",
"content": "一个有趣的公众号",
"author": "小柒2012"
}
$.ajax({
url: "/sys/multiParameter",
data: param,
type: "post",
dataType: "json",
success: function(data) {
}
});
/**
* 多参数
* https://blog.52itstyle.vip
*/
@PostMapping("/multiParameter")
public Result register(@RequestParam Map<String,Object> map){
logger.info("多参数传递:{},{}",map.get("title"),map.get("content"));
//业务逻辑
return Result.ok("接收多参数成功");
}
-------------------------------
param = JSON.stringify(param);
$.ajax({
url: "/sys/multiParameter",
data: param,
type: "post",
contentType: "application/json",
dataType: "json",
success: function(data) {
}
});
/**
* 多参数
* https://blog.52itstyle.vip
*/
@PostMapping("/multiParameter")
public Result register(@RequestBody Map<String,Object> map){
logger.info("多参数传递:{},{}",map.get("title"),map.get("content"));
//业务逻辑
return Result.ok("接收多参数成功");
}