springMVC默认是访问不到静态资源的,如css,js等,需要在xml里进行配置
保证已经配置好了 web.xml,
<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet> <servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
这里先给出一个结构目录,我现在要访问 res文件夹下js,在spirngmvc的配置文件中 加入以下配置
<mvc:annotation-driven />
<!--1--> <mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>
<!--2--><mvc:resources mapping="/res/js/**" location="/res/js/" cache-period="0"/>
<!--3--><mvc:resources mapping="/css/**" location="/css/" cache-period="31556926"/>
mapping="/res/js/**"表示我要访问res/js这个路径下的所有静态资源,包括res/js/scrpit这个路径下的,location是访问路径路径,cache-period="0"是静态资源的缓冲期限,maven web工程,默认是访问webapp下的资源,WEB-INF下的资源访问需要内部的action跳转才可以,也算是一种安全保护。配置好后,可以测试一下,项目在本地启动后 输入 127.0.0.1:8080/demo/res/js/jquery.1.7.2.min.js就可以访问到了 ,demo是我的项目发布名称,截图的时候没给截上。
注意:使用一下方式进行静态资源拦截时, 一定要加上 <mvc:annotation-driven />,不然会访问不到controller,报404错误