Lake's Blog Lake's Blog
首页
HCFrame
  • 博客搭建

    • 搜索引擎
    • SEO优化
    • 问题记录
  • Vue

    • 问题记录
  • uni-app
  • 开发

    • Spring
  • 数据库及中间件

    • Elasticsearch
    • SQL
  • 杂谈

    • 杂谈
  • 微服务

    • nacos
    • CAS
  • 算法说明

    • algorithm
  • leetCode

    • leetCode
  • 代理

    • Nginx
  • Linux

    • ubuntu
  • Docker
  • 数据库
  • 消息队列
  • openwrt
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

Lake Liu

很菜的程序员
首页
HCFrame
  • 博客搭建

    • 搜索引擎
    • SEO优化
    • 问题记录
  • Vue

    • 问题记录
  • uni-app
  • 开发

    • Spring
  • 数据库及中间件

    • Elasticsearch
    • SQL
  • 杂谈

    • 杂谈
  • 微服务

    • nacos
    • CAS
  • 算法说明

    • algorithm
  • leetCode

    • leetCode
  • 代理

    • Nginx
  • Linux

    • ubuntu
  • Docker
  • 数据库
  • 消息队列
  • openwrt
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • Spring

    • Spring通过URL传值不能携带"."???
    • Pathvariable注解允许参数为空吗?
      • 解决方案
      • 问题分析
    • Spring事务及隔离级别
    • Autowired实现多个实现类
    • SpringBoot集成EhCache
    • SpringBoot如何获取Bean列表
    • SpringBoot通过CacheManager集成redis做缓存
    • Spring不能将包含key值为null的map集合转换成JSON
  • 数据库及中间件

  • 杂谈

  • 微服务

Pathvariable注解允许参数为空吗?

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

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

# 解决方案

话不多说,直接上代码。

@GetMapping({"/get/{version}","/get"})
public ResultVO get(@PathVariable(required = false) Integer version) {
   return service.get(version);
}
1
2
3
4

# 问题分析

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

但是 @Pathvariable 注解不能为空

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

接口修改如下:

@GetMapping("/get/{version}")
public ResultVO get(@PathVariable(required = false) Integer version) {
   return service.get(version);
}
1
2
3
4

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

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

@GetMapping({"/get/{version}","/get"})
public ResultVO get(@PathVariable(required = false) Integer version) {
   return service.get(version);
}
1
2
3
4

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

@GetMapping("/get)
public ResultVO getAll() {
   return service.getAll();
}

@GetMapping("/get/{version}")
public ResultVO get(@PathVariable Integer version) {
   return service.get(version);
}
1
2
3
4
5
6
7
8
9
编辑
#Spring#REST#Restful
上次更新: 2020/12/29, 07:39:23
Spring通过URL传值不能携带"."???
Spring事务及隔离级别

← Spring通过URL传值不能携带"."??? Spring事务及隔离级别→

最近更新
01
IDEA行号太宽
03-11
02
uniapp中实现h5扫码功能(微信版)
08-12
03
Docker安装Rabbitmq
07-22
更多文章>
本站总访问量次 | 您是本站第位访问者
Theme by Vdoing | Copyright © 2020-2024 Lake Liu | MIT License | 背景图、Logo、头像设计@Drrizzee
  • 跟随系统
  • 深色模式
  • 浅色模式
  • 阅读模式