@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 时常用的注解。

相关推荐
子兮曰21 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰21 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码1 天前
别再前后端各写一套表单校验了
java·后端
大勇前进1 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu1 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile1 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白801 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙1 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端
盖伦发发1 天前
软件工程SOLID 五大设计原则
后端·软件工程