gpt4 book ai didi

java - Spring RequestMapping 正则表达式排除字符串

转载 作者:行者123 更新时间:2023-11-30 01:45:24 27 4
gpt4 key购买 nike

背景:我正在尝试为“单页应用程序”Web 客户端创建一个后端,它将所有请求路由到 index.html 入口点,除了 /assets/ 下的任何内容。 “/”在 ResourceHandler 中映射到/index.html,并且工作正常。

问题:我想将所有不以“/assets/”开头的路径与Spring中的RequestMapping相匹配。如果我在正则表达式中正向匹配“ Assets ”,则此方法有效,但如果我在正则表达式中负向匹配“ Assets ”,则此方法无效。

@ControllerAdvice
@RequestMapping(value="/**")
public class SPARouter {

@RequestMapping(value = {"/{path:(?!assets)}/**"}, method = RequestMethod.GET)
public String router() {
return "forward:/";
}

}

上面的代码不起作用,因为它从不匹配任何 URL。如果我将 "/{path:(?!assets)}/**" 替换为 "/{path:assets}/**" ,它将匹配如下 URL /assets/...

因此,不起作用的是正则表达式中的负向前瞻/匹配。

是否可以通过这种方式反向匹配模式?

最佳答案

我不太确定否定匹配部分......

但是对于您的具体问题(除了某些内容之外的所有内容都转发到 / ),我成功使用的解决方案是拦截器。拦截器检查 URL,必要时转发,否则不转发。

关于java - Spring RequestMapping 正则表达式排除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58215882/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com