用于捕获所有未配置路由的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+}”)