@RequestMapping(value = "/{userId:\\d+}", method = RequestMethod.DELETE)
public void delete(@PathVariable Long userId) {
try{
this.authorService.delete(userId);
}catch(Exception e){
throw new RuntimeException("delete error");
}
}
任何人都知道我应该为这个定义“/ {userId:\ d +}”匹配什么网址,你能给我一个例子,比如“/ userid = 1”,这是对的吗?
我猜这个定义就像这个“/ {userId:\ d +}”,在url中使用正则表达式来确保它传递一个数字参数。我不确定,如果有人知道,请给我一个链接进一步学习,谢谢!
答案 0 :(得分:0)
不,该表达式映射/1
例如所有数字。
语法{varName:regex}声明一个带有正则表达式的URI变量,其语法为{varName:regex} - 例如给定URL" /spring-web-3.0.5 .jar",以下方法提取名称,版本和文件扩展名:
@GetMapping("/{name:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{ext:\\.[a-z]+}")
public void handle(@PathVariable String version, @PathVariable String ext) {
// ...
}
查看完整的文档here
答案 1 :(得分:0)
它会匹配任何数字。例如,
/1
,/11
,/123
。
/{userId:\\d+}
===>将/
之后的一个或多个数字映射到变量userId
一个或多个数字的正则表达式为\d+
,但由于您将其用作字符串,因此需要使用其他\
对其进行转义。