Jsp 中使用 Visifire 统计图表

    Visifire 统计图表前面几篇文章中已经做了介绍了,Visifire 可以嵌入到Asp、Asp.net、Php、Jsp等页面中,但是在这些页面中使用 Visifire 时通过 javascript 或服务端代码中拼接 xmal 格式的字符串时非常不便,稍不注意就有拼错的可能。为了方便在 Jsp 页面中使用 Visifire 统计图表,做了一个可以根据设置的值自动生成 xaml 格式的字符串的小项目。

项目中的几个类分别和 Visifire 中相应的元素对应,通过这个小项目可以非常方便的在 jsp 中使用 Visifire 。

下面是一个小示例:

首先在 jsp 项目中引用 JspFire.jar 包,然后就可以在 jsp 中使用 JspFire 创建 Visifire 图表啦。

<%@page contentType="text/html" import="net.designbased.jspfire.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<%
            Chart chart = new Chart(); // 创建一个 Chart 实例
         chart.setAnimationEnabled(true);
            chart.setView3D(true);
            chart.setHeight(300d);
            chart.setWidth(500d);

            Title title = new Title(); // 创建一个 Title 实例
         title.setEnabled(true);
            title.setText("Jsp 使用 Visifire 示例");
            chart.addTitle(title);

            DataSeries series = new DataSeries(); // 创建一个 Pie 图表
         series.setRenderAs(ChartType.Pie);
            series.setBevel(true);

            DataPoint dp1 = new DataPoint(); // 创建数据结点
         dp1.setYValue("10");
            dp1.setLegendText("很好");
            series.AddDataPoint(dp1);

            DataPoint dp2 = new DataPoint();
            dp2.setYValue("14");
            dp2.setLegendText("一般");
            series.AddDataPoint(dp2);

            DataPoint dp3 = new DataPoint();
            dp3.setYValue("32");
            dp3.setLegendText("很强大");
            series.AddDataPoint(dp3);

            DataPoint dp4 = new DataPoint();
            dp4.setYValue("21");
            dp4.setLegendText("很烂");
            series.AddDataPoint(dp4);

            chart.addSeries(series);

            String xaml = chart.toString();
%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Visifire Example</title>
        <script type="text/javascript" src="visifire/Visifire.js"></script>
    </head>
    <body>
        <div id="Chart<%= chart.getID()%>" >
            <script type="text/javascript" >
                // 创建 Visifire 图表
                var vChart = new Visifire('visifire/SL.Visifire.Charts.xap', "MyChart", 500, 300);
                // 图表数据
                var chartXml = '<%= xaml%>';
                // 设置图表的数据
                vChart.setDataXml(chartXml);
                // 输出图表
                vChart.render("Chart<%= chart.getID()%>");
            </script>
        </div>
    </body>
</html>
运行结果如下:

 

这个项目现在还没有实现 Visifire 的全部功能,我会慢慢完善的,直到把Visifire的全部功能实现,同时还会做一个用于Asp.net的相同的项目。

示例代码下载:JspFireExample.zip  或者 http://zdd.me/myfiles

 

 

posted @ 2010-07-01 20:31  forgetu  阅读(2158)  评论(4编辑  收藏  举报