[英]How to use d3.js in JSP?
在Spring Web应用程序中,我试图创建一个虚拟的JSP页面以构建:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page session="false"%>
<html lang="en">
<head xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:spring="http://www.springframework.org/tags">
<meta charset="utf-8" />
<spring:url value="/resources/scripts/d3.js" var="d3_url" />
<script type="text/javascript" src="${d3_url}">
<jsp:text />
</script>
<title>A Pagey Page</title>
</head>
<body>
<h1>Hello world!</h1>
<P>What up?</P>
<script type="text/javascript">
d3.select("body").append("p").text("D3 works!");
</script>
</body>
</html>
我将d3.js加载到页面的标题中,对此没有任何抱怨,因此我假定找到了资源。 但是,当我在页面正文中使用D3脚本时,出现“ Uncaught ReferenceError: d3 is not defined
”。 我对调用的语法很满意,因为我已经在一个简单的HTML页面中测试了同样的东西,并且可以正常工作。
因此,这要么不是在JSP页面中使用D3的方法,要么就是某种程度上毕竟没有加载资源。 我的资源文件夹在配置文件中声明:
<resources mapping="/resources/**" location="/resources/" />
,我三遍检查了d3.js确实在/resources/scripts
文件夹中。
在JSP中使用d3.js的正确方法是什么?
更新:在Google Chrome开发工具控制台中,无法识别d3。 这得出结论,尽管缺少有关在头文件中加载d3的警告,但尚未正确加载。 但为什么?
更新2:当我更换
<spring:url value="/resources/scripts/d3.js" var="d3_url" /> <script type="text/javascript" src="${d3_url}">
同
<script type="text/javascript" src="/resources/scripts/d3.js">
我Failed to load resource: the server responded with a status of 404 (Not Found)
在Chrome控制台中以该行Failed to load resource: the server responded with a status of 404 (Not Found)
。
求助:我不好。 从资源位置删除前导斜杠后,它起作用了! value="resources/scripts/d3.js"
。 考虑到明确指出了资源根,我仍然不明白为什么这会影响结果。
解决方案是从JSP标头中的资源位置删除前导斜杠。 另外,字符集应指定为“ utf-8”,以使d3.js正确加载:
<script charset="utf-8" type="text/javascript" src="resources/scripts/d3.js">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.