51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Pathvariable注解允许参数为空吗?

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

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

# 解决方案 {#解决方案}

话不多说,直接上代码。

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

# 问题分析 {#问题分析}

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

但是 @Pathvariable 注解不能为空

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

接口修改如下:

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

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

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

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

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

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

@GetMapping("/get/{version}")
public ResultVO get(@PathVariable Integer version) {
   return service.get(version);
}
赞(5)
未经允许不得转载:工具盒子 » Pathvariable注解允许参数为空吗?