努力在代码中重用javascript中的Java数组 (基于SQL的动态元素在JSP中的forEach中选择)
即使在末尾也用逗号正确填充了数组(包含“ longs”)。两个数组都有不同数量的元素 但两者始终具有相同数量的元素。
l
数组包含1, 2, 6, 3,
等,m
数组包含CellA116, reception, home,
等
我尝试使用
将数组提供给chart.js
pageContext.setAttribute("numbers",l);
pageContext.setAttribute("zones",m);
,然后在chart.js中引用它们(在javascript中)
但没有图表出现(无论如何我的数字和我的区域
仅包含一个元素(大概是因为它们在forEach
循环之外),而l
和m
数组中有6个元素)
即mynumbers = [1.] myzones = [CellA116,]
<c:set var="quantity" value="${row.Quantity}," />
<c:set var="zone" value="${row.zone}," />
<%
ArrayList l= new ArrayList();
l.add(pageContext.getAttribute("quantity"));
pageContext.setAttribute("numbers",l);
for(int i=0; i<l.size(); i++)
out.println(l.get(i));
ArrayList m= new ArrayList();
m.add(pageContext.getAttribute("zone"));
pageContext.setAttribute("zones",m);
for(int i=0; i<m.size(); i++)
out.println(m.get(i));
%>
</c:forEach>
<script type="text/javascript">
var mynumbers = '<%=pageContext.getAttribute("numbers")%>'
var myzones = '<%=pageContext.getAttribute("zones")%>'
document.write(mynumbers);
document.write(myzones);
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: myzones,
datasets: [{
label: 'Quantity of assets by zone',
data: mynumbers,
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
如果我恢复到现有的chart.js示例,则会显示一个图表,以便外观/渲染在浏览器中正常工作。
<script type="text/javascript">
var mynumbers = '<%=pageContext.getAttribute("numbers")%>'
var myzones = '<%=pageContext.getAttribute("zones")%>'
document.write(mynumbers);
document.write(myzones);
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
label: 'Quantity of assets by zone',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
如何引用javascript中的Java数组(我需要重申吗? 返回某种选择语句的数组)?
我想在同一个JSP中做所有事情。
任何帮助表示赞赏。
拉尔夫。