Spring MVC default-servlet-handler配置阻塞JSTL视图

我有简单的Spring配置

  /pages/   .jsp     

我的控制器是

 package com.osfg.test; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * @author athakur */ @Controller public class TestController { @RequestMapping(value="/test", method=RequestMethod.GET) public String welcome() { return "test"; } } 

我的JSP是

      OSFG Test Page    

Hello World!

此配置工作正常(虽然CSS没有应用)。 在此处输入图像描述

所以我补充道

  

到我的Spring配置,现在页面本身停止加载给404。

令人惊讶的是,一切正常(使用CSS)将遵循配置

   

直接渲染无控制器参与。

我认为对资源进行简单配置就足够了。

  

看起来我发现了这个问题。 不知何故,default-sevlet-handler会覆盖DefaultAnnotationHandlerMapping处理程序? 这就是基于注释的处理程序失败的原因。 以下方案适合我 –

  1. 使用 。 这似乎启用了默认bean,包括DefaultAnnotationHandlerMapping组合

        

工作。

  1. 以最高优先级( 链接 )显式定义所需的处理程序映射和处理程序适配器。 Spring扫描所有处理程序映射并分配一个订单属性Integer.MAX(如果没有明确定义),它给出了最低优先级。 然后,这些处理程序映射将根据此顺序进行排序。 此外,如果两个处理程序映射相同,则看起来需要首先定义的bean。 以下为我工作 –

          

所以我猜测default-sevlet-handler创建了它自己的处理程序映射,它覆盖了所有处于相同首选项的注释。