『壹』 如何用java整合echarts生成饼图
//后台拼图标所需xml
StringBufferoutXml=newStringBuffer();//任务列表xml字符串
@Action("/task/loadMyTaskPercentXml")
()
{
HttpServletResponseres=ServletActionContext.getResponse();
res.setHeader("Cache-Control","no-store");
res.setHeader("Pragma","no-cache");
res.setDateHeader("Expires",0);
res.setContentType("text/xml;charset=GBK");
PrintWriterout=res.getWriter();
StringBufferoutXml=newStringBuffer(
"<?xmlversion="1.0"encoding="GBK"?>
");
outXml
.append("<chartbaseFontSize='12'caption='任务统计'subcaption=''yAxisMinValue='51650.1'yAxisMaxValue='71118.3'xaxisname='日期'yaxisname='数量'hovercapbg='FFECAA'hovercapborder='F47E00'formatNumberScale='0'decimalPrecision='0'showvalues='1'numdivlines='10'numVdivlines='0'shownames='1'rotateNames='1'>");
outXml.append("
");
outXml.append("<setname='已完成任务(%)");
outXml.append("'value='"+s1.replace("%","")+"");
outXml.append("'/>");
outXml.append("
");
outXml.append("<setname='未完成任务(%)");
outXml.append("'value='"+s2.replace("%","")+"");
outXml.append("'/>");
outXml.append("
");
outXml.append("</chart>
");
out.print(outXml.toString());
out.flush();
out.close();
returnnull;
}
在后台进行拼装xml,并且返回到页面
<divstyle="display:none"id="taskListGraph">${outXml}</div>
<scripttype="text/javascript">
vartext=document.getElementById("taskListGraph").innerHTML
varchart2=newFusionCharts("${base}/swf/Bar2D.swf?ChartNoDataText=暂无数据&XMLLoadingText=正在载入数据,请稍候","chart02","610","276");
chart2.setDataXML(text);
chart2.render('jdbox');
chart2.addParam("wmode","Opaque");
</script>
这样图就生成好了!
『贰』 用java完成图片多张批量上传的功能,还有就是后台的应该怎么处理上传的照片。
/*
*图片上传参数
*/
private File[] images;
private String[] imagesFileName;
private String[] imagesContentType;
加get set方法
req=ServletActionContext.getRequest();
//增加商品字段到数据库
Proct proct=new Proct();
ProctCategory proctCategory=null;
ProctCategoryBiz pcb=new ProctCategoryBizImpl();
System.out.println("third is:"+third_id+"ok");
if(third_id.equals("")){
proctCategory=pcb.getCategory(Integer.parseInt(second_id));
}else{
proctCategory=pcb.getCategory(Integer.parseInt(third_id));
}
proct.setCategory(proctCategory);
proct.setName(name);
proct.setPrice(Double.valueOf(price));
proct.setStock(Integer.parseInt(stock));
//上传图片到服务器
String fileType = null;
String fileName = "";
if(pb.addProct(proct)){
for (int i = 0; i < images.length; i++) {
fileType = imagesFileName[i].substring(imagesFileName[i]
.lastIndexOf("."));
fileName = (new Date().getTime() + i + 1) + fileType;
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("/files")
+ "/" + fileName);
(images[i], imageFile);
addImages("files/"+fileName);
System.out.println("路径"+imageFile);
}
req.setAttribute("msg", "商品添加成功!");
return "success";
}else{
req.setAttribute("msg", "商品添加失败!");
return "input";
}
『叁』 将html5页面上的div转化为图片,然后提交给后台java保存图片到指定路径
div 转化成图片?怎么会有这个要求,很奇怪的,正常来讲,一般是会有将canvas转成图版片的。
div转成图片实在没有必要权,canvas 是有方法可以直接转换成图片的
functionconvertCanvasToImage(canvas){
varimage=newImage();
image.src=canvas.toDataURL("image/png");
returnimage;
}
转换代码如上
『肆』 java怎么从数据库里获得动态数据生成统计图
我这个是使用的echarts的饼图,如果需要使用到其他的图形,可以在echarts的官网上面去找找,上面各种的图都有例子
option = {
title : {
//图中2的位置
text: '某站点用户访问来源',
subtext: '纯属虚构',
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
left: 'left',
data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']//图中1的位置
},
series : [ //图中3的位置
{
name: '访问来源',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:[
//这下面就是你从数据库中查询的结果
{value:335, name:'直接访问'},
{value:310, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:135, name:'视频广告'},
{value:1548, name:'搜索引擎'}
],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
} }]};
数据具体怎么从后台传送到前台来,楼主应该知道的吧,我这儿就不说了,望采纳!