前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pathvariable注解允许参数为空吗?

Pathvariable注解允许参数为空吗?

作者头像
taixingyiji
发布于 2022-07-25 07:36:19
发布于 2022-07-25 07:36:19
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

# PathVariable注解允许参数为空吗?

PathVariable 不能为空值该怎么处理?

# 解决方案

话不多说,直接上代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@GetMapping({"/get/{version}","/get"})
public ResultVO get(@PathVariable(required = false) Integer version) {
   return service.get(version);
}

# 问题分析

在开发过程中遇到比较特殊的需求,需要通过url的方式进行传值。

但是 @Pathvariable 注解不能为空

于是我们可以通过其他的方式来变通一下,首先想到的是通过 required 参数设置为 false

接口修改如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@GetMapping("/get/{version}")
public ResultVO get(@PathVariable(required = false) Integer version) {
   return service.get(version);
}

但是,发现一个问题,请求 /get 接口的时候,根本无法请求的到

原来 /get/get/{version} 是两个接口,所以,再次修改,得到如下解决方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@GetMapping({"/get/{version}","/get"})
public ResultVO get(@PathVariable(required = false) Integer version) {
   return service.get(version);
}

当然,还有其他的解决方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@GetMapping("/get)
public ResultVO getAll() {
   return service.getAll();
}

@GetMapping("/get/{version}")
public ResultVO get(@PathVariable Integer version) {
   return service.get(version);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # PathVariable注解允许参数为空吗?
    • # 解决方案
    • # 问题分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档