paramType属性表示参数放在哪里,主要有以下几个属性:
header : 请求参数的获取:@RequestHeader query : 请求参数的获取:@RequestParam path : 请求参数的获取:@PathVariable body : 请求参数的获取:@RequestBody form : 不常用1、先理解@PathVariable和@RequestParam的区别: @PathVariable是获取url上数据的。 @RequestParam获取请求参数的(包括post表单提交)
2、情况1:paramType = “query” 写法1:
@RequestMapping(value = "/abc",method = RequestMethod.GET) public 返回参数 method(String param){ ... }写法2:
@RequestMapping(value = "/abc",method = RequestMethod.GET) public 返回参数 method(@RequestParam("param") String param){ ... }3、情况2:paramType = “path” 如果@RequestMapping中表示为”item/{id}”,id和形参名称一致,@PathVariable不用指定名称。如果不一致,例如”item/{ItemId}”则需要指定名称@PathVariable(“itemId”)。 3.1 参数名一致
@RequestMapping(value = "/abc/{param}",method = RequestMethod.GET) public 返回参数 method(@PathVariable String param){ ... }3.2 参数名不一致,添加别名
@RequestMapping(value = "/abc/{param1}",method = RequestMethod.GET) public 返回参数 method(@PathVariable("param1") String param2){ ... }如果使用了paramType = "query"属性,但是传入参数使用@PathVariable会报错。
参考文章:
https://blog.csdn.net/xhyxxx/article/details/76111196