spring @PathVariable 注解用法

@PathVariable用于从RESTful URL路径中提取变量值,支持单个/多个变量、类型转换、JSR-303校验及可选参数(required=false),但不支持默认值。

请求url : xxx/aa/zhangsan/123/10

复制代码
    @GetMapping(value = {"aa/{account}/{password}/{page}","aa/{password}/{page}"})
    public String login(@PathVariable(value = "account", required = false) String username,
                        @PathVariable String password,
                        @PathVariable Integer page){

1、@PathVariable 用于从 URL 路径中提取变量值。URL 中用花括号 {} 定义占位符,方法参数用 @PathVariable 注解声明,Spring 会自动将对应路径段映射为参数值。

2、required属性默认值为true,即前端必须传递变量值,不传报错。若改为false,则可以允许前端不传该参数值。但是@PathVariable不支持给参数定义默认值。

3、Spring 会自动将路径段字符串转为目标类型(如 Long、Integer、String)。若转换失败(如传入非数字),默认返回 400 Bad Request。

4、示例代码中设置account参数允许不传,这样url就变成了 xxx/aa/123/10 ,如果真的这样调接口,GetMapping上还需要配置一个可解析的路径:aa/{password}/{page}。否则前端会报错,因为

xxx/aa/123/10和xxx/aa/zhangsan/123/10是两个不同的路径。只写aa/{account}/{password}/{page},接口是处理不了aa/{password}/{page}的。

相关推荐
海鸥-w4 小时前
数据库冗余字段设计笔记
java·数据库·笔记·oracle
工具派4 小时前
PDF签名贴上去为什么发虚?尺寸、DPI与坐标的边界实测
java·python·pdf
萧瑟余晖4 小时前
Spring Data综合实战与调优详解
java·后端·spring
yuniko-n5 小时前
【JUC】原子类 LongAdder
java
瑞got5 小时前
java使用CountDownLatch做并行查询
java·开发语言
用户574385305115 小时前
第 2 章:裸写 Query(原生驱动)
后端
用户574385305115 小时前
第 8 章:Service 层的诞生(硬编码版)
后端
用户574385305115 小时前
第 3 章:引入 Knex + Schema 自动加载
后端
flash俊杰5 小时前
合并式恢复的事务边界:幂等跳过、外键顺序与向量重建标记
后端