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

相关推荐
计算机学姐1 分钟前
基于SpringBoot的送货上门系统【2026最新】
java·vue.js·spring boot·后端·mysql·spring·tomcat
算法与双吉汉堡19 分钟前
【短链接项目笔记】6 短链接跳转
java·开发语言·笔记·后端·springboot
飞浪20 分钟前
告别“Hello World”:一个有经验的程序员如何用 FastAPI 打造生产级后端模板
后端
独自破碎E23 分钟前
IDEA2023中新建Spring Boot2.X版本的工程的方法
java·spring boot·后端
无限大636 分钟前
为什么"微服务"架构流行?——从集中式到分布式
后端
开心就好202538 分钟前
iOS 抓包工具有哪些?不同类型的抓包工具可以做什么
后端
Knight_AL42 分钟前
深入理解 PropertySource 与优先级:Spring Boot/Spring Cloud 配置体系的底层原理
spring boot·后端·spring cloud
CodeSheep42 分钟前
百度又一知名产品,倒下了!
前端·后端·程序员
li.wz1 小时前
溯源数据清洗:一次由“可控”到“失控”的复盘
java·后端·doris
毕设源码-郭学长1 小时前
【开题答辩全过程】以 基于springboot的健身房信息管理为例,包含答辩的问题和答案
java·spring boot·后端