『壹』 如何用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)'
}
} }]};
數據具體怎麼從後台傳送到前台來,樓主應該知道的吧,我這兒就不說了,望採納!