spring mvc默认映射处理程序

jer*_*luc 4 java spring-mvc

基本上,使用Spring MVC,我正在尝试创建一个路由器控制器,它将接收尚未由另一个控制器处理的任何URL并将其路由到其各自的资源,或者如果找不到资源则转发搜索请求.使用@RequestMapping(value="/{qry}", method = RequestMethod.GET)成功获取了我的其他控制器尚未抓取的请求(这似乎通过首先检查最具体的映射来工作)然后我可以做任何我需要的转发.但是,只要我在请求中放入"/",映射就会中断并返回404.

换句话说,"/some-long-path-or-something"正确地映射到这个全能控制器,但是"/some/other/path"(它没有映射到任何其他控制器)并没有被我的全部捕获.

如何实施?我已经阅读了一些关于拦截器和默认处理程序的内容,但没有找到解决方案的运气.

谢谢你的任何建议!

ska*_*man 5

开箱即用,Spring自动注册一个DefaultAnnotationHandlerMappingbean,它使用注释匹配对控制器的请求.在大多数情况下,它的默认行为都很好.

如果DefaultAnnotationHandlerMapping在上下文中声明自己的,那么它将覆盖默认值,并允许您设置其defaultHandler属性,当没有任何显式处理程序匹配时将使用该属性.只需将"catch-all"控制器注入该属性,然后将Bob's Your Uncle注入其中.