Spring RequestMapping 正则表达式:将所有不带点 [.] 的 url 转发到索引.html



此控制器将没有点的所有内容映射到索引.html。直到我添加一个/.然后可悲的是它不再匹配。如何编辑请求映射或正则表达式以允许在 url 中使用多个"/"?

@RequestMapping(value = "/{path:[^\.]*}")
public String redirect(@PathVariable("path") String path) {     
return "forward:/";
}

但是,一旦添加另一个正斜杠(subdir(,它就不匹配。

/image.jpg不匹配(好(

/about匹配(好(

/about/me不匹配(错误(

@RequestMapping("/**")中写入多个"/">

这解决了您为一个 URL提供多个正斜杠的问题

/
  • 你好/世界/
  • /
  • welcome/wel/com/me

每个测试用例都将通过

我想我回答了我自己的问题。在这里发布是为了其他挣扎的人的利益。

@GetMapping(value = "/**/{regex:[-a-zA-Z0-9]*}")
public String forward404() {
return "forward:/";
}

上面的正则表达式允许任何 url,但最后一部分(最后一个/之后的位(只能是-a-zA-Z0-9。这意味着.将被抛出并允许默认控制器为其提供服务。

相关内容

  • 没有找到相关文章

最新更新