2015-10-20 95 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

相关问题