常用的请求参数的注解

<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 矩阵变量,了解即可。

 

posted @ 2021-11-16 18:31  Acc22222222  阅读(154)  评论(0)    收藏  举报