Spring MVC常用的参数绑定注解 @PathVariable 和 @RequestParam

@PathVariable@RequestParam 是 Spring 框架中用于处理 HTTP 请求中的参数的注解,它们之间有一些关键的区别。

位置不同:

  • @PathVariable 用于从 URI 模板中提取变量,通常用于提取 URL 中的路径参数。

例如:

   //  http:localhost:6553/api/name=admin/password=123456

    @GetMapping("/api/name={name}/password={password}")
    public String test1(@PathVariable("name") String name, @PathVariable("password") String password) {

        return "name --->" + name + "   password----->" + password;
    }

    // 结果:name --->admin   password----->123456


    //  http:localhost:6553/api/=admin

    @GetMapping("/api/{userName}")
    public String test4(@PathVariable("userName") String userName) {
        return "userName: " + userName;
    }
    //结果  userName: admin
在这个Demo中 name、 userName 、 password  参数路径中提取

  • @RequestParam 用于从请求参数中提取值,通常用于处理查询参数或表单提交。

例如:

   //   http://192.168.10.71:9000/api?name=admin&password=234
    @GetMapping("/api")
    public String test2(@RequestParam("name") String name, @RequestParam("password") String password) {
        return "name --->" + name + "   password----->" + password;
    }

    //  结果  name --->admin   password----->234


    //  http:localhost:6553/api?userName=admin
    @GetMapping("/api")
    public String test3(@RequestParam("userName") String userName) {
        return "userName: " + userName;
    }
    //结果  userName: admin

在这个例子中,userName 参数从请求的查询参数中提取。


用途不同:

  • @PathVariable 通常用于 RESTful 风格的请求,其中路径中的一部分被当作参数。例如,/users/{id} 可以用于获取特定用户的信息。

  • @RequestParam 用于处理请求中的查询参数或表单提交的参数。它可以用于处理 URL 查询参数,也可以用于处理 POST 请求中的表单数据。


默认值处理不同

  • @PathVariable 可以指定一个默认值,例如 @PathVariable(name = "id", defaultValue = "1")

  • @RequestParam 也可以指定一个默认值,例如 @RequestParam(name = "param", defaultValue = "default")


是否必须

  • @PathVariable 默认情况下是必须的,如果路径中没有对应的值,将导致 404 错误。

  • @RequestParam 默认是非必须的,如果没有提供参数,参数值将为 null,但你可以使用 required 属性设置为 true 来使其变为必须的。


总的来说,选择使用 @PathVariable 还是 @RequestParam 取决于你的需求和具体的场景。如果你需要从 URI 中提取参数,通常使用 @PathVariable 更合适;如果你处理查询参数或表单提交,那么 @RequestParam 更为适用。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值