用于捕获所有未配置路由的Spring引导控制器
一旦检查了所有其他控制器并且没有路由匹配,我将尝试捕获所有未配置的路由 我的控制器如下:用于捕获所有未配置路由的Spring引导控制器,spring,spring-boot,spring-mvc,Spring,Spring Boot,Spring Mvc,一旦检查了所有其他控制器并且没有路由匹配,我将尝试捕获所有未配置的路由 我的控制器如下: @Controller public class ForwardController { @RequestMapping(value = "/**/{[path:[^\\.]*}") public String redirect() { return "forward:/"; } } 但这并不符合:http://local
@Controller
public class ForwardController {
@RequestMapping(value = "/**/{[path:[^\\.]*}")
public String redirect() {
return "forward:/";
}
}
但这并不符合:http://localhost:8080/abc/def
我可以要求一些指导吗
我的目标是不必处理/error并捕获未配置的路由,否则将导致/error
我使用以下方法修复了此问题:
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/**/{path:[^\\.]+}").setViewName("forward:/");
}
现在唯一的问题是图像无法渲染。对此不确定。仅指: 您可以尝试添加以下内容:
/{spring:\\w+}
作出上述决定:
@RequestMapping(value = "/{spring:\\w+}")
我不确定。仅指: 您可以尝试添加以下内容:
/{spring:\\w+}
作出上述决定:
@RequestMapping(value = "/{spring:\\w+}")
你的目标是什么?SpringMVC是围绕着将java控制器映射到定义良好且无歧义的路径的思想构建的。也许您需要一个servlet过滤器,甚至是一个将映射到所有请求的servlet,而不是SpringMVC的DispatcherServlet?我指的是中提出的解决方案。我正在努力做到这一点。你的目标是什么?SpringMVC是围绕着将java控制器映射到定义良好且无歧义的路径的思想构建的。也许您需要一个servlet过滤器,甚至是一个将映射到所有请求的servlet,而不是SpringMVC的DispatcherServlet?我指的是中提出的解决方案。我正在努力实现这一点。如果uri只有一个段,那么它就可以正常工作。例如:。但如果我有多个片段,它就会失败。这能适应多个细分市场吗?酷!是否可以替换为:
(value=“/***/{spring:\\w+}”)
如果uri只有一个段,那么它工作得很好。例如:。但如果我有多个片段,它就会失败。这能适应多个细分市场吗?酷!是否可以替换为:(value=“/**/{spring:\\w+}”)