<mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题
Posted seven_hu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了<mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题相关的知识,希望对你有一定的参考价值。
在做项目的时候,我希望静态资源由WEB服务器默认的Servlet来处理,所以我在配置文件中添加了如下的语句:
<mvc:default-servlet-handler/>
但是我再次运行项目,并访问资源的时候,发现访问@RequestMapping("/path1/path2")都不能访问了,之前没有添加的时候是能够访问的。
解决方案是,在配置文件中再添加一句代码:
<mvc:annotation-driven/>
这样做的原因是:
当两种标签都没有的时候,框架默认注册的有AnnotationMethodHandlerAdapter这个bean,所以能够处理@RequestMapping这个注解,但是只配置了<mvc:default-servlet-handler/>时所注册的三个bean都不能处理@RequestMapping注解,因此无法找到相应的Controller,进而无法进行访问路径的映射,当两种标签都有的时候,<mvc:annotation-driven/>会注册一个RequestMappingHandlerAdapter的bean,这个bean能够处理@RequestMapping这个注解。
以上是关于<mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题的主要内容,如果未能解决你的问题,请参考以下文章
使用@Controller注解为什么要配置<mvc:annotation-driven />
160331使用@Controller注解为什么要配置<mvc:annotation-driven />
<mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题
springMVC配置文件spring-servlet.xml中<mvc:annotation-driven />的意义
springMVC-mvc:annotation-driven
高效开发: < mvc:annotation-driven>和< context:annotation-config/>