静态资源的放行
在页面中 有这么一句静态资源请求语句:
<script type="text/javascript" src="js/demo.js"></script>
相当于在浏览器的地址栏中输入了 请求地址一样,一样的会被DIspactherServlet的拦截请求,会被HandlerMapping 解析,然后对应的方法执行,但是此时并没有对应的方法,所以会被报404错误。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 扫描注解,当SpringMvc扫描之后,Spring不能再扫了 --> <context:component-scan base-package="com.bjsxt.controller"></context:component-scan> <!-- 配置DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter 的<bean> --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 静态资源放行 --> <!-- mapping表示 handlermapping解析之后出现什么的格式 (会自动添加 /)--> <!-- handlerapdater就不会去寻找@RequestMapping(),而是去location中寻找资源 --> <!-- **表示子文件/子文件夹的内容 --> <mvc:resources location="/js/" mapping="/js/**"></mvc:resources><!-- js/demo.js js/abc/demo.js --> </beans>
在SpringMVC3.0之后推荐使用一:
<mvc:resources location="/img/" mapping="/img/**"/> <mvc:resources location="/js/" mapping="/js/**"/> <mvc:resources location="/css/" mapping="/css/**"/>