问题提出:
当在工程中引入.js文件,在JSP页面上,准备引用外部JS时,发现无法引用,这是因为SpringMVC的配置有问题
问题解决:
需要在SpringMVC工程的IOC容器(即springMVC的xml配置文件中),加入
<mvc:default-servlet-handler/>
其原因是,在配置文件中DispatcherServlet拦截的是/,即所有的URL请求,而.js的请求被拦截后,又没有对应的mapping可以处理,所以就会报错,配置了default-servlet-handler后,请求就可以被默认拦截器先拦截,对这类请求找到资源并给予相应 。
问题后续
发现加入注解之后,虽然注入XXX.js的URL可以响应,但是,之前在Controller中配置的mapping却都失效了。此时需要加上如下配置即可,是因为这个标签会自动注册两个重要的类,即DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter,这两个类可以解析Controller中的RequestMapping。
<mvc:annotation-driven></mvc:annotation-driven>