本质上,我有一个 servlet,它打开一个使用类似时间线小部件的页面timeline.html。 当直接从 user.dir/timeline.html 打开网页时,时间线显示完美。 但是,当 servlet 在 localhost:8080 上打开网页时,它不会加载 xml 文件。
你知道为什么吗?
if (action.equals("create")) {
request.getRequestDispatcher("/timeline.html").forward(request, response); }
时间线代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Timeline</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script src="http://api.simile-widgets.org/timeline/2.3.1/timeline-api.js?bundle=true" type="text/javascript"></script>
<script>
function onLoad() {
var eventSource = new Timeline.DefaultEventSource();
var bandInfos = [
Timeline.createBandInfo({
eventSource: eventSource,
date: "Jun 28 2013 00:00:00 GMT",
width: "70%",
intervalUnit: Timeline.DateTime.MONTH,
intervalPixels: 100
}),
Timeline.createBandInfo({
overview: true,
eventSource: eventSource,
date: "Jun 28 2013 00:00:00 GMT",
width: "30%",
intervalUnit: Timeline.DateTime.YEAR,
intervalPixels: 200
})
];
bandInfos[1].syncWith = 0;
bandInfos[1].highlight = true;
tl = Timeline.create(document.getElementById("my-timeline"), bandInfos);
Timeline.loadXML("/timeline.xml", function(xml, url) { eventSource.loadXML(xml, url); });}
</script>
</head>
<body onload="onLoad();" onresize="onResize();">
<div id="my-timeline" style="height: 300px; border: 1px solid #aaa"></div>
<noscript>
This page uses Javascript to show you a Timeline. Please enable Javascript in your browser to see the full page. Thank you.
</noscript>
最佳答案
/timeline.xml
指的是您的 Web 应用程序上下文根位置。您是否将 xml 文件放在根位置?例如,如果您将名为 myapp
的 Web 应用部署在 webapps/myapp
中,则 '/'
指的是 myapp 目录。所以 /timeline.xml
指的是 myapp/timeline.xml
关于java - Simile Timeline 直接打开时显示,但通过 servlet 打开时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333958/