项目中想突出几个亮点,Highchart图标应该算一个,外行人一看那么炫,档次就上去了;但官网demo都是静态数据,如何展示的是自己后台数据呢,很明显series里的数据是json结构,刚开始两个思路
1、页面加载的时候,通过后台requse.setAttribute();前端<script>里直接${}取值;
2、直接用$ajax同步请求,得到json数据赋值给series;
第一种方式折腾了好久最后放弃了,requse.setAttribute()里放对象数组后,自己循环拼接不出来;只能用${}一个一个取出来;
第二种代码如下
后台代码
模仿series数据结构自己定义的类
public class Hchart {
String name;
double[]data;}
//给chart封装数据后传给前端
double[]data1= {42,48,52,38,52,48,43};
double[]data2= {50.5,53.7,56.8,40.9,58.8,60.3,62.2};
double[]data3= {5.3,5.3,5.6,4.0,5.8,6.0,6.2};
double[]data4= {5,0,0,0,30,0,50};
Hchart hchar1=new Hchart("作业次数",data1);
Hchart hchar2=new Hchart("生活垃圾",data2);
Hchart hchar3=new Hchart("生活污水",data3);
Hchart hchar4=new Hchart("燃油供应",data4);
Hchart[]h= {hchar1,hchar2,hchar3,hchar4};
resp.setContentType("application/json;charset=utf-8");
PrintWriter out = resp.getWriter();
String json = JSON.toJSONString(h);
out.println(json);
out.close();
前端js代码
<script>
var series = [];
$.ajax({
type: "GET",
url: "${ pageContext.request.contextPath }/StatisticsServlet? method=getChart",
async:false, //关键点
dataType:"json",
success: function(data) {
series=data;
}
})
。
。
。
series: series,//赋值
。
。
。
水平很菜,希望哪位大佬不吝赐教