Controller请求参数传递

mac2025-10-23  6

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("接收多参数成功"); }
最新回复(0)