springmvc使用<mvc:default-servlet-handler/>导致的handler失效
使用springmvc时,会在web.xml中配置对所有请求进行拦截
<!-- 配置springmvc拦截的请求-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
但是当前端请求静态文件(如css,js)时,就会报错,因为springmvc会根据静态文件的请求路径去匹配handler,找不到对应的handler时,就会报错。
可以在springmvc.xml
中添加如下配置
<mvc:default-servlet-handler/>
这样框架就会自动帮我们判断请求类型,请求静态文件时就不会去寻找handler,而是直接找文件。
但是当我们同时使用注解开发时,就会把所有的请求都转到default-servlet-handler
进行处理,此时访问就会报错404
解决方法就是在springmvc.xml
中添加如下配置
<mvc:annotation-driven/>