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会报错。
参考文章:
- /xhyxxx/article/details/76111196