2017-04-09 61 views
0

不显示我正在从DAO对象的列表并将其设置为会话属性来访问它在其他的JSP如下谷歌图表中的JSP

list<PlayerBean> playerList=serviceDao.getPlayerData(); 
session.setAttribute("playerlist",playerList); 

PlayerBean是有2个属性1.playerName 2。 runsscored

现在我试图显示playername的条形图VS runsscored在一个jsp和我使用谷歌图表API为如下

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Graphical View</title> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
<script type="text/javascript"> 

google.charts.load('current', {packages: ['corechart', 'bar']}); 
google.charts.setOnLoadCallback(drawBasic); 

function drawBasic() 
{ 
var data = google.visualization.DataTable(); 
data.addColumn('string', 'Player Name'); 
data.addColumn('number', 'Runs Scored'); 

<c:forEach items="${playerlist}" var="listplayers"> 
data.addRow('${listplayers.playerName}',${listplayers.runsscored}); 
</c:forEach> 

    var options = { 
    title: 'Player Name vs Number of runs scored', 
    hAxis: { 
     title: 'Player Name' 
    }, 
    vAxis: { 
     title: 'Runs Scored' 
    } 
    }; 

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

    chart.draw(data, options); 
}} 
</script> 
</head> 
<body> 
<div id="chart_div"></div> 
</body> 
</html> 

但没有正被显示在叔他jsp。

我试图检查元素和查看网页源代码中的铬,它是作为下面

<html> 
<head> 
    <title>Graphical View</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
    <script type="text/javascript"> 
    google.charts.load('current', {packages: ['corechart', 'bar']}); 
    google.charts.setOnLoadCallback(drawBasic); 

    function drawBasic() { 
     var data = google.visualization.DataTable(); 

     data.addColumn('string', 'Player Name'); 
     data.addColumn('number', 'Runs Scored'); 

     data.addRow('John',250); 
     data.addRow('sachin',165); 
     data.addRow('ponting',54); 
     data.addRow('richards',320); 

     var options = { 
     title: 'Player Name vs Number of runs scored', 
     hAxis: { 
      title: 'Player Name' 
     }, 
     vAxis: { 
      title: 'Runs Scored' 
     } 
     }; 

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

     chart.draw(data, options); 
    } 
    </script> 
</head> 
<body> 
    <div id="chart_div"></div> 
</body> 
</html> 

显示并不意味着该浏览器是获得数据,但不显示? 任何人都可以帮助我确切的问题可能是什么?并请提出解决方案。

由于提前,

+0

addRow可能会期望数组。试试这个,也许工作。我不试试。 data.addRow(['$ {listplayers.playerName'',$ {listplayers.runsscored}]) –

回答

1

首先,添加new关键字生成的数据表

var data = new google.visualization.DataTable() 

添加括号时,

addRow,它必须是一个数组,或null

data.addRow(['${listplayers.playerName}',${listplayers.runss‌​cored}]) 
+1

感谢您的解决方案,它现在工作正常。 –