Java与Highcharts实例(四) - Hello Highcharts (后台Java传递数据) - 改造实体
2014-10-14 09:24
525 查看
上一回,我们实现了从后台传递数据,在图表中展示,而图表的大部分配置都实在JS中控制的,
个人有个想法,我们应该可以将图表的配置都拿到后台去,没有在实际开发中使用过,不知道是否好用,这里简单尝试下
(PS:试了下,可行,但是不知道实际项目中可用否?)
package org.ygy.highcharts.domain;
import java.util.List;
public class Highchart implements java.io.Serializable {
private static final long serialVersionUID = -5880168163194932425L;
private Chart chart;
private Title title;
private XAxis xAxis;
private YAxis yAxis;
private List<Serie> series;
public Chart getChart() {
return chart;
}
public void setChart(Chart chart) {
this.chart = chart;
}
public Title getTitle() {
return title;
}
public void setTitle(Title title) {
this.title = title;
}
public XAxis getxAxis() {
return xAxis;
}
public void setxAxis(XAxis xAxis) {
this.xAxis = xAxis;
}
public YAxis getyAxis() {
return yAxis;
}
public void setyAxis(YAxis yAxis) {
this.yAxis = yAxis;
}
public List<Serie> getSeries() {
return series;
}
public void setSeries(List<Serie> series) {
this.series = series;
}
}
其他的实体都是类似的结构
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
Chart chart = new Chart();
chart.setRenderTo("container");
chart.setType(ChartType.column);
Title title = new Title();
title.setText("我的第1个Highcarts图表!");
XAxis xAxis = new XAxis();
xAxis.setCategories(new String[] { "my", "first", "chart" });
YAxis yAxis = new YAxis();
Title yTitle = new Title();
yTitle.setText("Y轴标题");
yAxis.setTitle(yTitle);
Serie data_jane = new Serie("Jane", new Integer[] { 1, 0, 4 });
Serie data_john = new Serie("Jone", new Integer[] { 5, 7, 3 });
List<Serie> series = new ArrayList<Serie>();
series.add(data_jane);
series.add(data_john);
Highchart highchart = new Highchart();
highchart.setChart(chart);
highchart.setTitle(title);
highchart.setxAxis(xAxis);
highchart.setyAxis(yAxis);
highchart.setSeries(series);
Gson gson = new Gson();
PrintWriter out = resp.getWriter();
out.print(gson.toJson(highchart));
out.flush();
out.close();
}
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello Highcharts !</title>
<script src="js/jquery.min.js"></script>
<script src="js/highcharts.js"></script>
<script type="text/javascript">
$(function() {
//从后台获取json格式的数据
$.getJSON("go" , function(data) {
//初始化chart
var chart = new Highcharts.Chart(data);
});
});
</script>
</head>
<body>
<!-- 定义图表的容器 -->
<div id="container" style="width: 100%; height: 400px;"></div>
</body>
</html>
好了,运行下
好了,这样的话有个好处,就是所有的信息都可以存到数据库中,做成可配置的,
可以做一个管理界面去修该,而不是去修改JS
但是,可能会增大传输的数据量,希望有经验的同学可以提供点儿建议
需要所有代码的同学,可以联系我哈。
个人有个想法,我们应该可以将图表的配置都拿到后台去,没有在实际开发中使用过,不知道是否好用,这里简单尝试下
(PS:试了下,可行,但是不知道实际项目中可用否?)
1. 构造实体
我的想法是,在这里构造一个和Highcharts配置一样的一个实体:package org.ygy.highcharts.domain;
import java.util.List;
public class Highchart implements java.io.Serializable {
private static final long serialVersionUID = -5880168163194932425L;
private Chart chart;
private Title title;
private XAxis xAxis;
private YAxis yAxis;
private List<Serie> series;
public Chart getChart() {
return chart;
}
public void setChart(Chart chart) {
this.chart = chart;
}
public Title getTitle() {
return title;
}
public void setTitle(Title title) {
this.title = title;
}
public XAxis getxAxis() {
return xAxis;
}
public void setxAxis(XAxis xAxis) {
this.xAxis = xAxis;
}
public YAxis getyAxis() {
return yAxis;
}
public void setyAxis(YAxis yAxis) {
this.yAxis = yAxis;
}
public List<Serie> getSeries() {
return series;
}
public void setSeries(List<Serie> series) {
this.series = series;
}
}
其他的实体都是类似的结构
2. 初始化
我们为了方便,直接在Servlet中初始化下@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
Chart chart = new Chart();
chart.setRenderTo("container");
chart.setType(ChartType.column);
Title title = new Title();
title.setText("我的第1个Highcarts图表!");
XAxis xAxis = new XAxis();
xAxis.setCategories(new String[] { "my", "first", "chart" });
YAxis yAxis = new YAxis();
Title yTitle = new Title();
yTitle.setText("Y轴标题");
yAxis.setTitle(yTitle);
Serie data_jane = new Serie("Jane", new Integer[] { 1, 0, 4 });
Serie data_john = new Serie("Jone", new Integer[] { 5, 7, 3 });
List<Serie> series = new ArrayList<Serie>();
series.add(data_jane);
series.add(data_john);
Highchart highchart = new Highchart();
highchart.setChart(chart);
highchart.setTitle(title);
highchart.setxAxis(xAxis);
highchart.setyAxis(yAxis);
highchart.setSeries(series);
Gson gson = new Gson();
PrintWriter out = resp.getWriter();
out.print(gson.toJson(highchart));
out.flush();
out.close();
}
3. 修改页面
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello Highcharts !</title>
<script src="js/jquery.min.js"></script>
<script src="js/highcharts.js"></script>
<script type="text/javascript">
$(function() {
//从后台获取json格式的数据
$.getJSON("go" , function(data) {
//初始化chart
var chart = new Highcharts.Chart(data);
});
});
</script>
</head>
<body>
<!-- 定义图表的容器 -->
<div id="container" style="width: 100%; height: 400px;"></div>
</body>
</html>
好了,运行下
好了,这样的话有个好处,就是所有的信息都可以存到数据库中,做成可配置的,
可以做一个管理界面去修该,而不是去修改JS
但是,可能会增大传输的数据量,希望有经验的同学可以提供点儿建议
需要所有代码的同学,可以联系我哈。
相关文章推荐
- Java与Highcharts实例(四) - Hello Highcharts (后台Java传递数据) - 改造实体
- Java与Highcharts实例(三) - Hello Highcharts (后台Java传递数据)
- Java与Highcharts实例(三) - Hello Highcharts (后台Java传递数据)
- Java与Highcharts实例(四) - Hello Highcharts (后台Java传递数
- Java与Highcharts实例(五) -饼图数据传递(后台Java传递数
- Java与Highcharts实例(三) - Hello Highcharts (后台Java传递数
- highcharts如何接收java作为后台 struts2 传递过来的动态数据
- 实例讲述在Java程序利用JDom解析和传递XML格式数据
- java接口传递数据的实例
- JAVA程序通过后台登陆网站,获取Session,然后再POST Http Request添加数据到数据库的实例
- 关于Java后台的Json数据的传递问题
- Java与Highcharts实例(二) - Hello Highcharts
- 前台jsp向后台java文件传递数据的方法
- springMVC和easyUI结合使用(前后台通过json传递数据)的实例
- java后台传递json数据到前端并渲染react组件(react+struts2)
- 表单提交数据量大于2m,java 后台接受不到表单传递过来的数据
- jquery.ajax()向后台传递数组数据问题,java后台无法接受
- Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递
- easyui datetimebox处理【前台传递到后台是string类型,但是后台定义的是java.util.date,如何自动转换数据类型】
- Echarts折线图动态获取数据实例(附java后台代码)