![](/img/trans.png)
[英]Posting object with list of ints from jquery to .net mvc 3 controller
[英]Spring MVC posting data to JQuery from controller
我的春季MVC项目有一张图表。 此图表从javascript获取数据。 我的数据通过modelandview来自控制器。 我可以使用$ {}标签在jsp中读取模型数据。 但是此标记不适用于脚本。 所以我不能填写图表。 而且我还必须使用loop(foreach)来吸引数据。
这是图表的代码。
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: [
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
'11',
'12',
'13',
'14',
'15'
]
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.01,
borderWidth: 0
}
},
series: [{
name: 'Efor Time',
dataVar: [${for ( var log in ${logs}) {
**//in here i must add log.worked attributes value to dataVar.**
}}]
}]
});
这是图表div。
<div id="container" style="min-width: 770px; height: 514px; margin: 0 auto"></div>
和我的homeController
@RequestMapping(value = "/ProfilePage", method = RequestMethod.POST)
public ModelAndView profilePage(@RequestParam("username") String username) {
List<WorkLog> list = new ArrayList<WorkLog>();
WorkLog wl = new WorkLog();
wl.setUser_name(username);
list = wl.getMonthlyLogList();
ModelAndView model = new ModelAndView();
model.addObject("logs", list);
model.setViewName("ProfilePage");
return model;
}
在您的页面开始中添加变量,例如将以下代码添加到您的jsp页面中
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<c:set var="x" value="${/*YOUR_MODAL_OBJECT*/}" />
<script type="text/javascript">
var variable= "<c:out value="${x}" />";
</script>
该代码应在所有Java脚本导入之前进行,并且该变量将可用于Java脚本代码。
不幸的是,我们不能在JavaScript中使用EL标签。 为了在Java脚本中访问模型数据,请首先将数据分配给jsp中的某个隐藏字段,然后尝试在Java脚本函数中访问此隐藏字段数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.