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错误