我需要以下内容:
任何请求
等,应转发至
https://localhost:8443/a/web/index.html
现在,这是我设法做到的:
@Controller
public class ForwardController {
@RequestMapping(value = "/*", method = RequestMethod.GET)
public String redirectRoot(HttpServletRequest request) {
return "forward:/a/web/index.html";
}
}
这也匹配https://localhost:8443/api/(请注意/末尾)。
这是一个问题,因为那是我希望Spring Data REST基本路径为的地方:
spring.data.rest.base-path=/api/
/api != /api/
,涉及REST端点。
我尝试了几种不同的正则表达式,但仍然无法完成我想要的。例如(demo):
@RequestMapping(value = "/[^/]+", method = RequestMethod.GET)
现在将适用于Spring Data-我正在获取我期望的所有资源信息,但是访问https://localhost:8443/的操作现在已中断,无法再访问Web客户端。
同样的道理
@RequestMapping(value = "/{path}", method = RequestMethod.GET)
@RequestMapping(value = "/{path:[^/]+}", method = RequestMethod.GET)
其行为类似于/*
(也匹配下一个/
)。
这个问题已经困扰我好几个星期了,仍然没有解决方案的见解。
整个问题也可以看作:
为什么"/[^/]+"
与https://localhost:8443/whatever不匹配?
答案 0 :(得分:0)
正则表达式通常不是最快的尝试方法。 您可以将路径列表发送到
@RequestMApping(value={"", "/", "/test", "/api"}, method = RequestMethod.GET)