2015-10-20 36 views
1

我想在我的Spring MVC應用程序的.jsp頁面上顯示Google Chart(折線圖)。數據是從MySQL數據庫中檢索的,所以我需要將YYYY-MM-DD HH:MM:SS格式轉換爲Javascript的日期。如何將MySQL時間戳轉換爲Javascript日期?

數據庫是由Hibernate創建的。 Reading實體具有time字段,其​​類型爲java.sql.Timestamp,該字段在數據庫中存儲爲DATETIME

resultsIterable<Reading>通過控制器傳遞給.jsp的對象。它正確傳遞(我也將數據顯示爲表格)。

我試圖使用提議的解決方案here,但它不起作用。

這裏是我想要填充圖與代碼:圖表顯示不

<c:forEach items="${results}" var="reading"> 
    var t = "${reading.time}".split(/[- :]/); 
    var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]); 
    data.addRow([d,${reading.temperature}]); 
</c:forEach> 

回答

1

事實:

放在一起:

<c:forEach items="${results}" var="reading"> 
    <fmt:formatDate var="time" value="${reading.time}" pattern="yyyy-MM-dd'T'HH:mm:ss" timeZone="UTC" /> 
    var d = new Date("${time}"); 
    // ... 
</c:forEach> 

或者,僅僅使用一個控制器中的體面的JSON格式轉換results以JSON和打印,如果是像這樣var data = ${data};一個JS變量。另見a.o. How to access array of user defined objects within <script> in JSP?


無關到具體的問題:確保你的模型是java.util.Date類型。您的模型中不應該有java.sql.*類型的屬性。如果您使用普通JDBC,則直接將ResultSet#getTimestamp()上傳至java.util.Date即可。另見a.o. Handling MySQL datetimes and timestamps in Java

+0

謝謝你的提示和答案。但是,上面的代碼不起作用。我想我會嘗試JSON解決方案。 – RK1

+0

它適合我。哪一步完全失敗? – BalusC

+0

圖表不顯示。我正在使用'data.addRow([d,$ {reading.temperature}]);'。我怎樣才能調試呢?不幸的是,我根本不知道Javascript。 – RK1

相關問題