Home  >  Article  >  Web Front-end  >  JSP引入外部文件遇到的一个问题_html/css_WEB-ITnose

JSP引入外部文件遇到的一个问题_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-21 08:46:011486browse

今天搭建了一个项目,框架式Spring、SpringMVC和Mybatis,在JSP中引入js文件和css文件的时候发现一直引入不了,后来发现是SpringMVC的一个配置导致的,也就记录一下,目录结构是这样的:

project.jpg

引入外部文件的方式:

<script type="text/javascript" src="${ctx}/js/jquery.min.js"></script><script type="text/javascript" src="${ctx}/js/bootstrap.min.js"></script><script type="text/javascript" src="${ctx}/js/bootstrap-paginator.js"></script><script type="text/javascript" src="${ctx}/js/wiki.js"></script><link rel="stylesheet" type="text/css" href="${ctx}/css/bootstrap.min.css" /><link rel="stylesheet" type="text/css" href="${ctx}/css/shopin-list.css" />

在jsp中定义了ctx的路径,也就是项目的根路径:

<%request.setAttribute("ctx", request.getContextPath());%>

这样也是为了方便管理,在实际应用中,我们只需要这样引用就可以了:

<%@ include file="common/header.jsp"%>

但是自己觉得这样没什么问题,但是fireBug一直报404错误,找不到js文件和css文件,我也找不到头绪,也想了很久,才发现在web.xml中拦截了所有的路径:

<servlet-mapping>        <servlet-name>shopin-wiki</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping>

又在springmvc配置文件中给做了资源映射:

<mvc:resources location="/WEB-INF/css/" mapping="/css/**"/><mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>

但是路径是在/WEB-INF/css/下,就会导致我现在放在webapp目录下的文件找不到。

总结

因为web.xml在项目启动的时候会加载在web.xml文件中配置的springmvc控制器,默认拦截了所有的url,但是静态资源我不想让拦截,我就可以在springmvc配置文件中配置资源映射,标签的意思就是我的页面引用到/css/**的资源都会从/WEB-INF/css/这个目录下寻找,自己理解是这样的,理解的比较肤浅, 底层实现自己还是不知道如何实现的。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn