@PathVariable 和 @RequestParam 的区别

@PathVariableSpring MVC 中的一个注解 ,用于从 URL 路径中提取变量值,并将其绑定到方法的参数上。


例子:

java 复制代码
@GetMapping("/{id}")
public String index(@PathVariable Long id) {
    // ...
}
  • @GetMapping("/{id}") 表示这个 URL 模板中有一个路径变量 {id}
  • @PathVariable Long id 会将 URL 中的 {id} 部分转换为 Long 类型,并赋值给方法的 id 参数。

示例说明:

假设你访问的 URL 是:
http://localhost:8080/123

那么:

  • Spring 会将 123 提取出来。
  • 将其转换为 Long 类型。
  • 传递给 index 方法的 id 参数。

扩展用法:

  1. 指定变量名(如果参数名与 URL 变量名不同):

    java 复制代码
    @GetMapping("/{userId}")
    public String getUser(@PathVariable("userId") Long id) {
        // ...
    }
  2. 多个路径变量

    java 复制代码
    @GetMapping("/users/{userId}/posts/{postId}")
    public String getPost(@PathVariable Long userId, 
                          @PathVariable Long postId) {
        // ...
    }

@RequestParam 的区别:

  • @PathVariable 是从 URL 路径 中获取值(如 /users/123)。
  • @RequestParam 是从 查询参数 中获取值(如 /users?id=123)。

简单总结:

@PathVariable 用于将 URL 中的占位符(如 {id})映射到方法参数,是构建 RESTful API 时常用的注解。

相关推荐
金金金__5 分钟前
腾讯云COS接入配置
后端
Hyyy10 分钟前
Git Worktree 完全讲解
前端·后端·面试
逝水无殇42 分钟前
C# 反射详解
开发语言·后端·c#
Cache技术分享1 小时前
465. Java 反射 - 获取类的简单名
前端·后端
做系统的大强1 小时前
REPL里的HLT:main_stmts为空时的致命尾声
后端
薛定谔的悦1 小时前
光伏-储能-负荷联合预测:给 EMS 装上"预知能力"
后端
云技纵横1 小时前
Redis 延迟双删还是读到脏数据?一次缓存一致性事故
redis·后端·面试
网易云信1 小时前
从“合规”到“信任”:网易智企专属云打造强监管下的通信新范式
人工智能·后端
吃糖的小孩1 小时前
从“让聊天模型顺便选表情”到独立分类器:我给 QQ AI Chatbot 做了一套本地动态表情包系统
后端
无责任此方_修行中2 小时前
面对 300+ 仓库的重复劳动,我用 Guideline 优化了 Vibe Coding 工作流
后端·ai编程·vibecoding