@RequestParam和@PathVariable能一起用吗?

发布于 2022-09-12 02:30:40 字数 404 浏览 26 评论 0

@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 "";
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

私藏温柔 2022-09-19 02:30:40
  • 1)HTTP协议的基本内容,比如:

GET /page/1234?number=456
这里面,1234对应@PathVariable
number=456对应@RequestParam。

  • 2)你写的代码中,@PathVariable@RequestParam参数形式都是number,这种情况有点复杂化了,一般不要这么做,至少参数名不要一样。
  • 3)最后,推导一下:

GET /page 或 /page/1234,方法体中取的是@RequestParam?number=为空,取默认值1,@PathVariable的参数其实被spring丢弃了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文