Передача данных в Google Chart API - PullRequest
3 голосов
/ 08 марта 2012

Во-первых, пример Google Chart API от Google (это 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>

(реализую в сервлете) Теперь я хочу передать свои собственные данные (после чтения из базы данных) и сделать их в строку. передать его в измененный JavaScript, вызвав drawChart (чтение)

//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? Или я не должен использовать чтение строк, а другие? Но в Java такого типа переменных нет.

1 Ответ

1 голос
/ 08 марта 2012

Просто позвольте Java напечатать точно тех же данных, которые вы написали бы в обычном обычном JavaScript. Вам не нужно конвертировать данные вообще. Java не выполняет JavaScript. Java просто генерирует код JavaScript, который исполняется позже, когда поступает в веб-браузер.

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