restful /{id} id为空导致405 即@Pathvariable里的参数允许为空的问题的解决

问题描述:
因为ids是子表中的数据,用户只处理了主表,子表没有处理,ids就为空了,这时,访问后端就会因为找不到资源路径,报405错误。而其他情况下,用户是可以正常访问的。

使用restful风格传递动态参数,因为参数可以为空,所以,可能后面的子路径就没有了。此时,就不是一个url了。

比如:

  @PostMapping("/add/{ids}")
    public Result add(@RequestBody CheckGroup checkGroup, @PathVariable(value="ids") List<Integer> ids){...}

解决方案:
资源路径问题,就可以通过requestMapping解决。
1.@RequestMapping是可以处理多个url的。
2.同时需要将@PathVariable里的required改为false。
于是将上面的@RequestMapping改成下面这样即可:

  @PostMapping(value={"/add/{ids}","/add"})
    public Result add(@RequestBody CheckGroup checkGroup, @PathVariable(value="ids",required=false) List<Integer> ids){...}
上一篇:图书管理系统——公告管理(公告删除)


下一篇:centos7下安装kubernetes1.18