将数据传递到Google Chart API

时间:2012-03-08 10:36:03

标签: javascript html servlets google-visualization

首先,来自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中没有这种变量类型。

1 个答案:

答案 0 :(得分:1)

让Java打印完全与您在普通的JavaScript中编写的数据相同。您根本不需要转换数据。 Java不执行JavaScript。 Java只会生成JavaScript代码,这些代码将在以后到达webbrowser时执行。

String reading = "[['2004', 1000, 400],['2005', 1170, 460],['2006', 660, 1120],['2007', 1030, 540]]";