阅读更多
//1.jquery调用ajax请求
$(document).ready(function() {
$.ajax({
type: "POST",
url: "需要调用的url链接",
beforeSend :function() {//调用成功前前端显示内容
$("#testImgError").text("正在获取...");//可使用动态gif图片展示等待过程
},
success: function(data) {//调用成功后前端处理
$("#testImgError").text("");
$("#testImg").attr("src", "../test/"+data);
},
error: function() {//前端调用错误处理
$("#testImgError").text("调用失败");
$("#testImg").hide();
}
});
});
//2.前端form中的显示,只需两行代码,可嵌入到相应的table或者div中:
//3.中后端的代码也不复杂,需要处理一下数据获取和图片的保存和发送过程,代码如下:
//3.1.数据获取
public void createTestImg() throws IOException {
//获取参数, id不能为空
Integer id = Integer.parseInt(this.getRequest().getParameter("id"));
//根据id获取数据
List distributed = testService.getData(id);
ChartConstruction mtd = new ChartConstruction("");
JFreeChart demo = mtd.getTestChart(distributed);
//保存为图片,创建所需保存图片的文件夹
String prefix = "InvestTypeDistributed-";
String path1 = "D://Chart//paperIrrByYear";
File newPath = new File(path1);
if (!newPath.exists())
newPath.mkdir();
File tempFile1 = File.createTempFile(prefix, ".jpeg", newPath);
ChartUtilities.saveChartAsJPEG(tempFile1, demo, 500, 270);//实际JFreeChart保存图片方法
//向前台传递Json
sendJSON(distributed);
}
//3.2.向前台发送Json,方法多种多样,大家可以根据需要自行编写
private void sendJSON(List distributed){
Map map = new HashMap();
if ((distributed == null) || (distributed.size() == 0))
map.put("rows", new ArrayList());
else
map.put("rows", distributed);
senderJson(this.getResponse(), map);
}
//3.3组织数据,两个dataset,形成柱状图和折线图的组合
public JFreeChart getTestChart(List distributed, Integer companyId, String begin, String end){
//List distributed = peCompanyInvestAnalysisService.getCompanyMoneyTypeDistributed(companyId, begin, end);
DefaultCategoryDataset datasetSum = new DefaultCategoryDataset();
DefaultCategoryDataset datasetNum = new DefaultCategoryDataset();
Double maxSum = 0.0d;
Double minSum = 0.0d;
Double tempSum = 0.0d;
Integer maxNum = 0;
Integer minNum = 0;
Integer tempNum = 0;
if(distributed!=null)
for(int i=0;i
好的例子: http://blog.sina.com.cn/s/blog_906e353d0101241e.html
小知识点:
BasicStroke basicStroke = new BasicStroke(5.0f,// 线条粗细
BasicStroke.CAP_ROUND,// 端点风格
BasicStroke.JOIN_ROUND,// 折点风格
1.0f,// 折点处理办法
new float[]{ 1.0f },// 虚线数组
0.0f);// 虚线偏移量
renderer.setSeriesStroke(1, basicStroke);// 利用虚线绘制