常用的请求参数的注解
<head> <meta charset="UTF-8"> <title>首页</title> </head> <body> <a href="car/3/owner/shang?age=18&inters=basketball&inters=game">测试常用请求参数的注解</a> </body> </html>
一些注解可以从链接里获取数据注入到形参中。比如 @PathVariable 可以获取Controller链接中对应占位符的数值,@RequestHeader可以获取头请求的内容,@RequestParam可以获取html链接中参数的值。
@RestController public class Controller { @GetMapping("/car/{id}/owner/{username}") //id和username都是占位符,根据对应的链接赋值 public Map<String,Object> getCar(@PathVariable("id") Integer id, //获取占位符的值,为3 @PathVariable("username") String name, //shang @PathVariable Map<String,String> pv, //可以直接获取id与username关于实际值的映射 @RequestHeader("User-Agent") String userAgent, //获取User-Agent的值 @RequestHeader Map<String,String> header, //获取User-Agent关于实际值的映射 @RequestParam("age") Integer age, //获取网址中的参数 (18) @RequestParam("inters") List<String> inters, @RequestParam Map<String,String> params) { Map<String,Object> map = new HashMap<>(); map.put("id",id); map.put("name",name); map.put("pv",pv);
... return map; //输出 } }
@RequestBody获取请求体,主要用于Post方法,也就是在表单提交时使用。
@PostMapping("/save") public Map postMethod(@RequestBody String content){ //获取post的内容 Map<String,Object> map = new HashMap<>(); map.put("content",content); return map; }
@RequestAttribute 获取request域中的内容。
@Controller //单纯的控制器 public class Controller2 { @GetMapping("/goto") public String goToPage(HttpServletRequest request){ request.setAttribute("msg","成功"); //用HttpServletRequest对象向request域中添加内容 request.setAttribute("code",200); return "forward:/success"; //转发到/success请求 } @ResponseBody @GetMapping("/success") public Map success(@RequestAttribute("msg") String msg, //从request域中通过名称获取属性的值 @RequestAttribute("code") Integer code, HttpServletRequest request){ Object msg1 = request.getAttribute("msg"); //第二种获取方法,用HttpServletRequest对象的getAttribute方法获取
Map<String,Object> map = new HashMap<>();
map.put("reqMethod_msg",msg1);
map.put("annotation_msg",msg);
return map;
}
}
@MatrixVariable 矩阵变量,了解即可。