STS Spring MVC:如何在JSP中包含JS文件

STS Spring MVC: How to include a JS file in a JSP

本文关键字:JSP 包含 JS 文件 Spring MVC STS      更新时间:2023-09-26

我安装了SpringSource Tool Suite 2.8.0。我试图在JSP中包含一个JS文件,使用Spring MVC模板作为起点。我的JSP看起来像这样:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
    <title>Home</title>
    <script type="text/javascript" src="/a.js"></script>
</head>
<body>
    Hello world!  
</body>
</html>

a.js位于src'main'resources目录下,如下所示:

window.alert("A");

结果是打印"Hello world!"而不显示警告:-(

)

我尝试将JS文件放在不同的地方,将src更改为带/不带"/",甚至在web.xml中添加servlet映射以使用"默认"servlet用于"*. JS"。似乎什么都不管用。

我做错了什么?

js文件是否包含在.war文件中?我通常把我的js和css在src/main/webapp。比如src/main/webapp/js和src/main/webapp/css。

其次,你可以使用c:url适当地引用它,它会负责将应用程序上下文放在那里。

<script type="text/javascript" src="<c:url value="/a.js" />" />

您可以使用firebug或chrome的开发工具来查看您是否获得a.js的404,并查看它实际请求的路径

我建议把这些js文件放在webapp文件夹下。(我通常把它们放在webapp/resources/js下)

为了使这个路径可访问,我使用mvc:resources标签:

这个标签允许特定URL后面的静态资源请求模式,由ResourceHttpRequestHandler从任意资源位置列表。这提供了一种方便的服务方式来自web应用根目录以外的静态资源;包括类路径上的位置。cache-period属性可以是用于设置远未来过期头(1年为推荐的优化工具,如Page Speed和YSlow)客户会更有效地利用它们。处理程序也正确地计算Last-Modified头(如果存在),以便将适当地返回304状态码,避免类缓存的资源的不必要开销客户端。例如,为URL模式提供资源请求/resources/**从web中的公共资源目录在应用程序根目录下,标签的使用方法如下:

<mvc:resources mapping="/resources/**" location="/public-resources/"/>

来源:Spring Reference