在使用SSM框架做web开发时,遇到SpringMVC拦截了静态资源(如js,css,img等文件),导致jsp页面在浏览器上不能正常显示。
SpringMVC默认拦截了所有的请求,静态资源也是一个请求,所以会被拦截。导致访问不了。
3) 解决办法,SpringMVC 处理静态资源
- 为什么会有这样的问题:
优雅的 REST 风格的资源URL 不希望带 .html 或 .do 等后缀,若将 DispatcherServlet 请求映射配置为 /, 则 Spring MVC 将捕获 WEB 容器的所有请求, 包括静态资源的请求, SpringMVC 会将他们当成一个普通请求处理, 因找不到对应处理器将导致错误。 - 解决:
- 在 SpringMVC 的配置文件中配置 < mvc:default-servlet-handler/>
如果需要对以上的静态js文件进行访问。在springmvc.xml中配置加载静态资源:
<!-- 静态资源解析
包括 :js、css、img、..
-->
<mvc:default-servlet-handler/>
${pageContext.servletContext.contextPath }作用:
<%-- ${pageContext.request.contextPath}用于解决使用相对路径时出现的问题,它的作用是取出所部署项目的名字。 --%>
<script type="text/javascript" src="${pageContext.servletContext.contextPath }/js/jquery-1.8.2.min.js">
4) 配置后,原来的请求又不行了
需要再配置开启SPringMVC的驱动<mvc:annotation-driven />
此标签非常的强大,后面许多的功能都需要用到这个标签
版权声明:本文为qq_44840230原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。