Spring-MVC PathVariable匹配不以word开头的正则表达式

Spring-MVC PathVariable matching regular expression not starting with word

我想匹配所有不以 'api' 开头的 PathVariable 请求。我测试了 RequestMapping。 spring 可以匹配请求但无法获取 PathVariable 的值。我如何解决这个问题?

@RequestMapping(value = "/{name:(?!api).+}", method = RequestMethod.GET)
public void getNotApi(@PathVariable String name, HttpServletResponse response) {
    ...
}

我收到了一些请求的消息,例如 localhost:8080/resource

Error 500 Missing URI template variable 'name' for method parameter of type String

如果您在 Java 8 之前的版本上构建,可能是因为缺少名称。尝试 @PathVariable("name") String name。保持 @PathVariable 值与您的映射参数名称相同。

@RequestMapping(value = "/{name:^(?!api).+}", method = RequestMethod.GET)