jsp页面:
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 初始 option
option = {
title: {
text: '异步数据加载示例'
},
tooltip: {},
legend: {
data:["销售0","销售1","销售2"]
},
xAxis: {
type : "category",
data :[]
},
yAxis: [{
type : "value",
}],
series: [
{
name:"销售0",
type:"bar",
data:[]
},
{
name:"销售1",
type:"bar",
data:[]
},
{
name:"销售2",
type:"bar",
data:[]
}
]
};
myChart.showLoading();
//通过Ajax获取数据
$.ajax({
type : "post",
async : true, //异步执行
url : "AcceptData",
dataType : "json", //返回数据形式为json
success : function(json) {
if (json) {
fetchData(function (data) {
myChart.hideLoading();
myChart.setOption({
xAxis:{
data:json.xAxisData
},
series: json.seriesList
});
});
}
},
error : function(errorMsg) {
alert("请求数据失败");
}
});
myChart.setOption(option);
</script>
</body>
</html>
Servlet:
package com.cdm.Hive;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sf.json.JSONObject;
public class AcceptData extends HttpServlet {
JSONObject jsonObject=null;
public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
try{
req.setCharacterEncoding("utf-8");
resp.setContentType("utf-8");
resp.setCharacterEncoding("utf-8");
PrintWriter write = resp.getWriter();
Map<String,String[]> map = new HashMap<String,String[]>();
List<String> xAxisData = new ArrayList<String>();
List< JSONObject> seriesList = new ArrayList< JSONObject>();
for (int i = 1; i < 13; i++) {
xAxisData.add(i+"月");
}
for (int i = 0; i < 3; i++) {
List<Integer> list = new ArrayList<Integer>();
for (int j = 1; j < 13; j++) {
list.add((int)(Math.random()*40));
}
Series series = new Series("销售"+i, Series.TYPE_LINE, list);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", series.toName());
jsonObject2.put("type","bar");
jsonObject2.put("data",series.data);
seriesList.add(jsonObject2);
}
//xAxisData和seriesList转为json
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("xAxisData", xAxisData);
jsonObject1.put("seriesList", seriesList);
//发送给前台
write.write(jsonObject1.toString());
write.flush();
write.close();
}catch (IOException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException,IOException{
doGet(req,resp);
}
}<strong>
</strong>
Series:
import java.util.List;
import org.json.JSONObject;
public class Series {
public String name;
public String type;
public List<Integer> data;
public static String TYPE_LINE = "line";
public static String TYPE_BAR = "bar";
public Series( String name, String type, List<Integer> data) {
this.name = name;
this.type = type;
this.data = data;
}
public String toName(){
return name;
}
}
结果: