Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript STS Spring MVC:如何在JSP中包含JS文件_Javascript_Spring Mvc_Sts Springsourcetoolsuite - Fatal编程技术网

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

Javascript STS Spring MVC:如何在JSP中包含JS文件,javascript,spring-mvc,sts-springsourcetoolsuite,Javascript,Spring Mvc,Sts Springsourcetoolsuite,我安装了SpringSource工具套件2.8.0。 我试图在JSP中包含一个JS文件,使用SpringMVC模板作为起点。 我的JSP如下所示: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false" %> <html> <head> <title>Home</title> <s

我安装了SpringSource工具套件2.8.0。 我试图在JSP中包含一个JS文件,使用SpringMVC模板作为起点。 我的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>
window.alert("A");
结果是打印“Hello world!”时不显示警报:-(

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


我做错了什么?

你的.war文件中包含了js文件吗?我通常将我的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应用程序根目录以外位置的静态资源, 包括类路径上的位置。缓存周期属性可能是 用于设置远期到期标头(以1年为准 推荐优化工具,如页面速度和YSlow)so 客户机将更有效地利用它们。处理程序 还正确评估上次修改的标题(如果存在),以便 将根据需要返回304状态代码,以避免 已由缓存的资源的不必要开销 例如,使用URL模式服务资源请求 /资源/**来自web中的公共资源目录 应用程序根目录下,标记将按如下方式使用:



来源:

Related:STS在这里并没有真正的作用。您只是在尝试打包一个标准的java web应用程序。谢谢!我将文件移动到src/main/webapp,使用c:url,并在web.xml中添加一个servlet映射,以使用“*.js”的“默认”servlet。
<mvc:resources mapping="/resources/**" location="/public-resources/"/>