繁体   English   中英

如何在JSP中使用d3.js?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM