【发布时间】:2020-02-01 13:56:46
【问题描述】:
背景:
我正在尝试为“单页应用程序”网络客户端创建一个后端,它将所有请求路由到 index.html 入口点,/assets/ 下的任何内容除外。 "/" 映射到 ResourceHandler 中的 /index.html,并且工作正常。
问题: 我想将所有不以“/assets/”开头的路径与 Spring 中的 RequestMapping 进行匹配。如果我积极匹配“资产”,这有效,但如果我否定匹配正则表达式中的“资产”,则无效。
@ControllerAdvice
@RequestMapping(value="/**")
public class SPARouter {
@RequestMapping(value = {"/{path:(?!assets)}/**"}, method = RequestMethod.GET)
public String router() {
return "forward:/";
}
}
上面的代码不起作用,因为它从不匹配任何 URL。
如果我将"/{path:(?!assets)}/**" 替换为"/{path:assets}/**",它将匹配/assets/... 之类的URL
所以不起作用的是正则表达式中的负前瞻/匹配。
是否有可能以这种方式否定匹配模式?
【问题讨论】:
-
成功了 - 谢谢
标签: java regex spring spring-mvc