@RequestParam和@PathVariable一起使用时,访问 /page 和/page/123456 ,number无论如何都是1, 这是为啥?
//测试
@GetMapping({"/page","/page/{number}"})
@ResponseBody
public String paging(@RequestParam(defaultValue = "1",required = false)@PathVariable(value = "number",required = false) int number){
System.out.println("当前是第 :"+number + " 页");
return "";
}
。
GET /page/1234?number=456
这里面,1234对应@PathVariable
number=456对应@RequestParam。
@PathVariable
和@RequestParam
参数形式都是number
,这种情况有点复杂化了,一般不要这么做,至少参数名不要一样。GET /page 或 /page/1234,方法体中取的是
@RequestParam
,?number=
为空,取默认值1,@PathVariable
的参数其实被spring丢弃了。