今天记录下 SpringMVC 静态资源配置的情况 -- 虽然之前记住了,不过一段时间没管它就忘记了!!记忆差只能多记录一点了
1.静态资源位于WEB-INF下,如图:
2.web.xml中的配置
<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:/config/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>因为是/ ,所以全部都进行了拦截,当然也拦截了静态资源
3.spring-mvc.xml 中的配置 *关键的地方*
<!-- 默认的注解映射的支持 -->
<mvc:annotation-driven />
<!-- 静态资源访问 -->
<mvc:resources mapping="/images/**" location="/WEB-INF/images/" cache-period="31556926"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/js/" cache-period="31556926"/>
<mvc:resources mapping="/css/**" location="/WEB-INF/css/" cache-period="31556926"/>
注意这里mapping的js/**表示 jsp页面需要的路径写法,location指这个写法对应的文件真正在的路径,具体看下面就明白了
4.jsp页面的路径选择
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<script src="${ctx}/js/jquery-2.1.0.js"></script>这里的路径直接js/jqury-2.1.0.js 就会映射到 WEB-INF/js/jqury-2.1.0.js
这样配置就可以找到WEB-INF下的静态资源,\(^o^)/!
本文详细介绍了SpringMVC中如何配置静态资源,包括在WEB-INF目录下放置静态资源的方法、web.xml中的DispatcherServlet配置、spring-mvc.xml中的静态资源映射配置及jsp页面中的资源引用方式。
1445

被折叠的 条评论
为什么被折叠?



