接口入参--注解

时间:2021-01-19 21:08:46

注解使用:
@RequestParam("前端的名称") 加了如果参数没传就报参数错误。没加就都可以访问。

@RequestMapping("/list")
public String test(@RequestParam Long parentId) {

}
@RequestMapping("/list")
public String test( Long parentId) {

}

第一种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?parentId=? 才能执行相应的方法

第二种 可带参数也可不带参数 就是说你输入 localhost:8080/list 以及 localhost:8080/list?parentId=? 方法都能执行
当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了

@RequestMapping("/list")
public String test(@RequestParam(value="id") Long parentId) {
..
}
这样会用id 代替parentId 也就是说你地址里面传入的参数名称为id localhost:8080/list?id=? 这种


----因此综上所述,如果为get请求时,后台接收参数的注解应该为RequestParam,如果为post请求时,则后台接收参数的注解就是为RequestBody。

----另外,还有一种应用场景,接口规范为resultful风格时,举个例子:如果要获取某个id下此条问题答案的查询次数的话,则后台就需要动态获取参数,其注解为@PathVariable,并且requestMapping中的value应为value="/{id}/queryNum",

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。

 

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写