我目前正在使用一个小型内部应用程序上的FusionChartsFree,我有一个像这样的小html代码。
<html>
<head>
<title>My First chart using FusionCharts XT</title>
<script type="text/javascript" src="FusionCharts.js"></script>
</head>
<body>
<div id="chartContainer">FusionCharts XT will load here!</div>
<script type="text/javascript">
var myChart = new FusionCharts( "Line.swf", "myChartId", "400", "300");
var strXML = "<chart caption='Critical' xAxisName='month' yAxisName='Count' yAxisMinValue ='40' showValues= '0'><set label = 'month1' value='55'/><set label = 'month2' value='55'/><set label = 'month3' value='55'/><set label = 'month4' value='55'/></chart>" ;
myChart.setXMLData(strXML);
myChart.render("chartContainer");
</script>
</body>
</html>
以上代码完美运行并呈现图形。现在,我正在尝试使用JSP执行相同的操作,如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Graphs</title>
<script type="text/javascript" src="FusionCharts.js"></script>
</head>
<body>
<%
String data="<chart caption='Minor' xAxisName='month' yAxisName='Count' yAxisMinValue ='66500' showValues= '0'>"+"\n"+"<set label = 'month1' value='66560'/>"+"\n"+"<set label = 'month2' value='66560'/>"+"\n"+"<set label = 'month3' value='66647'/>"+"\n"+"<set label = 'month4' value='66631'/>"+"\n"+"</chart>";
System.out.println(data);
%>
<div id="chartContainer1" align="left" style="margin-top: 22px; padding-top: 310px;">blocker data</div>
<script>
var blocker = new FusionCharts("Line.swf", "myChartId1", "400", "300");
var strXML1="<%=data%>";
blocker.setXMLData(strXML1);
blocker.render("chartContainer1");
</script>
</body>
</html>
问题出现在我动态生成“数据”字符串时,我没有得到任何输出。请帮忙
答案 0 :(得分:1)
问题是JSP页面的XML中的额外“\ n”。删除“\ n”并再次检查,它将正常工作。
使用XMLData()函数传递数据时,FusionCharts需要一个没有任何换行符的XML数据字符串(明确包含在XML中)。