<mvc:annotation-driven/>与静态资源配置引发的问题

来源:互联网 发布:linux stage2存放在哪 编辑:程序博客网 时间:2024/06/05 14:31

在做项目的时候,我希望静态资源由WEB服务器默认的Servlet来处理,所以我在配置文件中添加了如下的语句:

<mvc:default-servlet-handler/> 或<mvc:resources location="/static/*" mapping="/static/**" />

但是我再次运行项目,并访问资源的时候,发现访问@RequestMapping("/path1/path2")都不能访问了,之前没有添加的时候是能够访问的。

解决方案是,在配置文件中再添加一句代码:

<mvc:annotation-driven/>

这样做的原因是:

当两种标签都没有的时候,框架默认注册的有AnnotationMethodHandlerAdapter这个bean,所以能够处理@RequestMapping这个注解,但是只配置了<mvc:default-servlet-handler/>时则所有请求都交给web容器默认的servlet处理,则因此无法找到相应的Controller,进而无法进行访问路径的映射,当两种标签都有的时候,<mvc:annotation-driven/>会注册一个RequestMappingHandlerAdapter的bean,这个bean能够处理@RequestMapping这个注解。

0 0
原创粉丝点击