项目中正在使用着Spring3 REST带来的快活,忽然一条很不和谐的错误信息出现,如下所示:
2010-05-07 09:07:43,275 WARN org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:962) No mapping found for HTTP request with URI [/Spring3/css/mSelect.js] in DispatcherServlet with name 'springmvc'
2010-05-07 09:07:43,275 WARN org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:962) No mapping found for HTTP request with URI [/Spring3/css/style_index.css] in DispatcherServlet with name 'springmvc'
这说明在web工程中的css、js、gif、jpg 等都无法显示出来,都是因为下面这段配置导致的
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
换成这样一点问题都没有,虽然没有问题,不是我们期望的结果,多了后缀 .do。
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
这说明要将那些不能显示的 css/js/jpg/gif 文件排除在过滤器以外不经过过滤器,不然Spring3的过滤器会认为你没有将这个url进行映射,在网上找了很多资料都没有非常针对性的答案,于是经过几番折腾,总算搞定,加上以下配置在web.xml中,将默认的过滤器选项激活,世界又恢复平静,css、js、gif、jpg 等一切显示正常。
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
–end–