2009年的最后一天,没啥好玩的,也没啥好去的,还是攻克下当前的技术难点把,哈哈,这或许这是寂寞的力量~~
最近研究JIRA的gadget插件,里面涉及到不少图的绘制(如饼图,柱状图,曲线图以及甘特图等等).查阅了下源代码,发现都是用jfreechart绘制成png图片,然后在前台使用jquery异步调用后台数据进行展现.
首先在JFreeChart的主页http://www.jfree.org/jfreechart/index.html,下载相关lib文件,源代码,和demo.它的官方指导说明和完整的样例代码是要付美金才可以看到,不过在中国,这个强大的盗版生产地,只需要baidu下就立刻能够搞定!
下载完后,运行"java -jar jfreechart-1.0.13-demo.jar" ,你就能够看到各种图片的展示,很好很强大...........粗略地看了一下饼图demo的代码,貌似不难,不过估计要想输出自己理想的效果,那得费点心思看看API了.
最后说下JIRA是如何展现这些图片的.从页面上我发现它就使用了一个img标签,src指向的是一个类似“http://localhost:8080/aaaa/servlet/DisplayChart?filename=jfreechart-onetime-madixin.jpg”的路径,而且我在硬盘里搜索了半天也找不到jfreechart-onetime-madixin.jpg的图片,这让我困惑了一天.现在下了源代码,我就明白了DisplayChart原来是一个servlet,在web.xml中配置为
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
然后在DisplayChart.java中我看到,当显示以“jfreechart-onetime-”开头的图片后,会执行file.delete(); 所以.....原来如此简单!
ok~~~未完,待续..............