2011-02-15 41 views
3

我在如何在春天傳遞變量時遇到了一些麻煩。傳遞java數組並在彈簧視圖中使用它

我的意圖是傳遞一個double數組,並通過在javascript中使用該數組來創建一個Google可視化。

問題是我只能得到java對象(toString),而我無法遍歷這些值。

Java文件。

而且在我的jsp

dataTable = new google.visualization.DataTable(); 
var data = '${array}'; 

dataTable.addColumn('string', 'Task'); 
dataTable.addColumn('number', 'Hours'); 
dataTable.addRows(data.length); 

for (i=0;i<=data.length;i++) 
{ 
    dataTable.setValue(i, data[i]); 
} 


var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
chart.draw(data, {width: 400, height: 240, is3D: true, title: 'My Array'}); 

我要的是能夠循環這裏的陣列上。我知道我可以使用Arrays.Tostring(),但這似乎沒有意義。

回答

2

使用JSTL(需要taglib聲明<%@taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>):

var data = '<c:forEach var = "a" items = "${array}" varStatus = "s">${a}${s.last ? "" : ","}</c:forEach>'; 
+0

感謝。不知道我如何使用jstl來正確使用它。 – Nitro 2011-02-15 10:39:11

0

雙陣列的toString方法返回是這樣的:[[email protected]。 所以,你需要調用一個在數組上迭代的函數,並將該數組打印出來作爲一個Javascript數組。

或者你可以用JSTL做到這一點:

var data = [<c:forEach var="d" items="${array}">${d}, </c:forEach>]; 
相關問題