首先,来自Google的Google Chart API示例(实际上是javascript)
<script type="text/javascript">
// There is of coz some thing else but i just ignore them, just focus on the data here
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Sales');
data.addColumn('number', 'Expenses');
data.addRows([
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]
]);
</script>
现在我修改成为这个
<script type="text/javascript">
function drawChart(reading) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Sales');
data.addColumn('number', 'Expenses');
data.addRows([reading]);
</script>
(我在servlet中实现) 现在,我希望传递我自己的数据(从数据库读取后)并将其转换为字符串。通过调用drawChart(读取)
将其传递给修改后的javascript//After some action retrieving data from db and make it to a data string like this
String reading = "['2011',1000,400],['2009',800,200]";
out.println("<body onload=\"drawChart("+reading");\">");
//drawing is here
out.println("</body>");
但是,似乎JS不能接受这样的字符串变量,我应该将变量传递给JS哪种格式?或者我不应该使用String阅读而是其他人?但是Java中没有这种变量类型。
答案 0 :(得分:1)
让Java打印完全与您在普通的JavaScript中编写的数据相同。您根本不需要转换数据。 Java不执行JavaScript。 Java只会生成JavaScript代码,这些代码将在以后到达webbrowser时执行。
String reading = "[['2004', 1000, 400],['2005', 1170, 460],['2006', 660, 1120],['2007', 1030, 540]]";