日期:2014-05-20  浏览次数:20664 次

在JAVA EE中使用Fusionchats 参数setDataXML获取值的问题
在项目中使用了struts2,所以JSP页面中有很多struts标签。做报表时用到fusioncharts了,后台拼接好xml流,通过request对象传到jsp页面,用s:property直接获取,如<s:property value="model.chartXml"/>,jsp页面中得到相应的字符串
,能得到xml流的内容。但是需要在JS中设置setDataXML时,页面不显示任何图表。
JS代码段:
var chart = new FusionCharts('charts/FCF_Pie2D.swf', "ChartId", "400", "300");  
  var dataxml=<s:property value="model.chartXml"/>;
  chart.setDataXML(dataxml); 
  chart.render('Pie');  

本人对JS获取值的问题不是很清楚,网上也有说是xml流中带有中文不行,我把xml流中的中文去掉,也没法显示。但是我把xml中的内容直接加载到chart.setDataXML(dataxml)中时,可以显示出图表。例如:
chart.setDataXML(“<graph baseFont='SunSim' baseFontSize='12' captio。。。。。。。。。。”),这么写可以显示的。
所以怀疑是不是setDataXML方法没有获取到<s:property value="model.chartXml"/>中的内容,如果要获取,该怎么写?





------解决方案--------------------
后台直接拼成字符串返回到页面,var dataxml=${xmlStr}
------解决方案--------------------
setDataXML方法只需要接受从后来返回来的字符串就可、
setURLXML方法才是就收XML流的、
------解决方案--------------------
将中文转为/u../u格式