ChartDirector struts统计图之饼图讲解

本来是不准备发这个的,因为前面讲了echarts的用法,echarts要比ChartDirector好用很多,更容易理解,不过既然要研究了,就当做一个笔记吧

1、下载ChartDirector.jar文件,网上很多版本,自己选一个就好,首先上后台代码

      工具类方法,这里我就直接给数据了,如果你从数据库取数据也是很好做的,直接封装成数组就可以生成交互图了

       public static PieChart createPieChart(){
        double[] data = {25, 18, 15, 12, 8, 30, 35};

        // The labels for the pie chart
        String[] labels = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};

        // Create a PieChart object of size 360 x 300 pixels
        PieChart c = new PieChart(500, 300);
        // Set the center of the pie at (180, 140) and the radius to 100 pixels
        c.setPieSize(180, 140, 100);
        c.setDefaultFonts("simhei.ttc","simhei.ttf");
        // Set the pie data and the pie labels
        c.setData(data, labels);
        return c;

    }

      struts的action方法,ChartDirector是用session的方法传递数据的,给图像生成一个随机id,照葫芦画瓢就好

       public String createPieChart(){

        PieChart p=ChartDirector.createPieChart();
        ses.setAttribute("pie",   p.makeChart2(Chart.PNG));  
        String chart1URL= "img=pie&id=" + System.currentTimeMillis();  
         String pieMap = p.getHTMLImageMap("#", "",  
                   "title='{xLabel}: US${value}K'");  
          req.setAttribute("chart1URL", chart1URL);  
          req.setAttribute("pieMap", pieMap);

          return "success";

}

  ses即是session,req是request的,这里我继承了一个baseaction里面封装好了,简短代码长度

2、前台接收数据

      首先新建一个getchart.jsp文件,里面源码为

      <%@page import="ChartDirector.*" %><%
try
{
    out.clear();
    GetSessionImage.getImage(request, response);
    if (Math.max(1, 2) == 2) return;
}
catch (IllegalStateException e)
{
    response.sendRedirect(response.encodeRedirectURL(
        "getchart.chart?" + request.getQueryString()));
    return;
}
%>

    之后在你要显示统计图的jsp页面新建一个img标签 ,src中格式是这样获取的chart1URL就是你action中  req.setAttribute("chart1URL", chart1URL);  的URL

    <img src="getchart.chart?${chart1URL}"usemap="#map1" border="0">

   

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值