使用Thymeleaf的Google图表的示例确实缺乏。我不想为每个图表创建一个HTTP端点,这是这里采用的方法:http://www.baeldung.com/spring-rest-api-metrics虽然这是一个很好的指南。
我只想知道Thymeleaf如何将对象数组Object[][]
输出到图表API可以提取的javascript字符串表示形式。必须(资本M)是可能的。
据我在阅读文档时可以看到,我使用的语法应该有效。请指教
脚本
<script type="text/javascript">
// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {
'packages' : [ 'corechart' ]
});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
function drawChart() {
var d = /*[[${tools}]]*/ ;
var data = google.visualization.arrayToDataTable(d);
var options = {
title: 'Test data generated by tool',
pieHole: 0.4,
};
var chart = new google.visualization.PieChart(document.getElementById('data_chart');
chart.draw(data, options);
}
</script>
控制器
@RequestMapping("portal")
String index(Model model){
model.addAttribute("metrics", metricsService.getMetricsForHomePage());
model.addAttribute("tools", metricsService.getToolMetricsForHomePage());
return "index";
}
服务
@Override
public Object[][] getToolMetricsForHomePage() {
int rowCount = (int) testToolRepository.count();
Object[][] result = new Object[rowCount][2];
int i = 0;
for (TestTool t : testToolRepository.findAll()){
result[i][0] = t.getName();
result[i][1] = t.getGeneratedDataCount();
i++;
}
return result;
}
答案 0 :(得分:0)
您缺少脚本标记上的Thymeleaf内联注释:
<script type="text/javascript" th:inline="javascript">
这将打开内联功能。