Java 使用jstl forEach的Google图表
嗨,我正试图在我的java程序上呈现google图表。但它根本不显示。GoogleChartAPI是在.jsp文件中实现的。由于我的java代码提供了正确的数据(我使用系统打印进行了检查),所以我的jsp文件中一定有错误。特别是[一]部分。。 我对这个世界很陌生 谁能指出我在.jsp文件中做错了什么 我的jsp文件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
<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>