Java 使用jstl forEach的Google图表

Java 使用jstl forEach的Google图表,java,jsp,jstl,bar-chart,Java,Jsp,Jstl,Bar Chart,嗨,我正试图在我的java程序上呈现google图表。但它根本不显示。GoogleChartAPI是在.jsp文件中实现的。由于我的java代码提供了正确的数据(我使用系统打印进行了检查),所以我的jsp文件中一定有错误。特别是[一]部分。。 我对这个世界很陌生 谁能指出我在.jsp文件中做错了什么 我的jsp文件 <html> <head> <script type="text/javascript" src="https://www.google.com/jsa

嗨,我正试图在我的java程序上呈现google图表。但它根本不显示。GoogleChartAPI是在.jsp文件中实现的。由于我的java代码提供了正确的数据(我使用系统打印进行了检查),所以我的jsp文件中一定有错误。特别是[一]部分。。 我对这个世界很陌生

谁能指出我在.jsp文件中做错了什么

我的jsp文件

<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {

var data = google.visualization.DataTable();
data.addColumn('number', 'Data value');

data.addRows([
    <c:forEach var="dataIntValue" items="${dataInt}">
        ['${dataIntValue}'], //---- [A]
    </c:forEach>
    ]);    

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

chart.draw(data, {width: 600, height: 340, min: 0});
}
</script>
</head>
<body>
  <div id="chart_div" style="width: 1000px; height: 540px;"></div>
</body>
</html>

这里的结果:可以编译但浏览器上没有显示图表:来自(JB Nizet)=>的注释您发布的内容不是运行时得到的错误。IDE试图将代码解释为纯JavaScript,它会生成一个错误。代码是正确的。部署它,运行它,并查看它是否工作

更新3&解决:逗号应该出现在[A]中,谷歌图表代码应该是这样的:

工作代码: 1) 更改为google.visualization.arrayToDataTable,而不是google.visualization.DataTable。 2) 我在这里缺少第一个列元素(因此应该有两个这样的元素)
['${dataIntValue}',${dataIntValue}],
,而只有一个元素是错误的:[${dataIntValue}]

正确代码=>

<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {

       //---[solution] modified from here
        var data = google.visualization.arrayToDataTable([
          ['number', 'Data Value'],
           <c:forEach var="dataIntValue" items="${dataInt}">
                ['${dataIntValue}', ${dataIntValue}], 
            </c:forEach>
        ]);  //--- until here. 

        var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

        chart.draw(data, {width: 600, height: 340, min: 0});
      }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 600px; height: 340px;"></div>
  </body>
</html>

load(“可视化”、“1”、{packages:[“corechart”]});
setOnLoadCallback(drawChart);
函数绘图图(){
//---[解决方案]从此处修改
var data=google.visualization.arrayToDataTable([
[‘数字’,‘数据值’],
['${dataIntValue}',${dataIntValue}],
])直到这里。
var chart=new google.visualization.ColumnChart(document.getElementById('chart_div'));
绘制图表(数据,{宽度:600,高度:340,最小值:0});
}

谷歌API并不关心JS代码是如何生成的。生成的页面看起来像什么?嗨,谢谢你的评论。我在browserIt的
'400'
上添加了带有页面源代码的更新部分,因为您明确地在数字周围添加了引号:
['${dataIntValue}]
应该是
[${dataIntValue}]
。还有一个逗号不应该出现在数组的and处。我以前试过。但只有这样[${dataIntValue}]没有“”。我得到编译错误..它根本不工作。我甚至不能编译。你发布的不是运行时的错误。IDE试图将代码解释为纯JavaScript,它会生成一个错误。代码是正确的。部署它,运行它,看看它是否有效。
<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {

        var data = google.visualization.DataTable();
        data.addColumn('number', 'Data Value');
        data.addRows([
            <c:forEach var="dataIntValue" items="${dataInt}">
                [${dataIntValue}], //---[A]
            </c:forEach>   //----[B]
            ]);            //----[B]
        var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

        chart.draw(data, {width: 1000, height: 540, min: 0});
      }   //----- [c]
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 1000px; height: 540px;"></div>
  </body>
</html>
Multiple annotations found at this line:
- Syntax error on tokens, ArrayLiteralHeader expected 
 instead
- Syntax error, insert "]" to complete 
 MemberExpression
- Syntax error, insert ")" to complete Arguments
- Syntax error on tokens, delete these tokens
- Syntax error, insert "]" to complete ArrayLiteral
<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {

       //---[solution] modified from here
        var data = google.visualization.arrayToDataTable([
          ['number', 'Data Value'],
           <c:forEach var="dataIntValue" items="${dataInt}">
                ['${dataIntValue}', ${dataIntValue}], 
            </c:forEach>
        ]);  //--- until here. 

        var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

        chart.draw(data, {width: 600, height: 340, min: 0});
      }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 600px; height: 340px;"></div>
  </body>
</html>