期待JOFC2王者归来

较早的前几年,J2EE应用的画图还使用jfreeChart这一呆板的开源项目,相继而推出cewolf标签。

从07年开始,随着json的成熟,一些商业的作图产品陆续地推出基于flash的动态展现技术,使得java ee画图这一块有了革命性的前景。秉承java语言开源性这一优势,jofc2让我们不再需要花费一美金就能画出好看的pieChart、barChart、lineChart、stackBarChart等众多美图。遗憾的是,在google网站上,jofc2的研究只停留在08年2月份的v.0,目前支持的图形种类还很有限,并且这个项目本身也不带demo practice,图片还缺少热点连接等等许多缺陷,HorizontalBar.java似乎还存在一点问题。

所以很期待jofc能够尽快推出新版本,以满足我们的需要,否则google.cn真的要失去中国程序员这一块肥沃的市场了。期待中。。。

 

本人不才,针对图片应用,现在搭建了一个taglib,分别基于jfreechart和jofc两种实现,如果有可能,还将加入其他的实现。现将结果简要描述如下:

DisplayChartTag通过ajax提交form到“*.chart”

-->GraphicServlet转交request给AbstractGraphic的实例(jfreechart或jofc)输出

-->1. AbstractJFreeGraphic调用jfreeChart ServletAPI生成image(因为jfreechart设计不好,每一种chart一个Graphic实例)

     2. JofcGraphic提交到BodyTagServlet生成json数据给open-flash-chart.swf

 

web.xml

  <servlet>
    <servlet-name>displayChartServlet</servlet-name>
    <servlet-class>com.tsinghuatec.dawn.waf.view.taglibs.graphic.GraphicServlet</servlet-class>
    <init-param>
      <param-name>implClass</param-name>
      <param-value>jofc</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>displayChartServlet</servlet-name>
    <url-pattern>*.chart</url-pattern>
  </servlet-mapping>

 

  <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>/servletDisplayChart</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>wafBodyServlet</servlet-name>
    <servlet-class>com.tsinghuatec.dawn.waf.view.taglibs.notag.BodyTagServlet</servlet-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>wafBodyServlet</servlet-name>
    <url-pattern>/wafbody</url-pattern>
  </servlet-mapping>

 

test_chart.jsp

<waf:body action="com.tsinghuatec.dawn.waf.view.taglibs.graphic.test.TestAction">
  <waf:chart id="xxxx1" chartType="pie" title="Profit Present" axisX="age" axisY="profit"
       legend="true" valueVisible="true" useMap="${param.useMap}"/>

  <waf:chart id="xxxx2" chartType="line" title="Profit Present" axisX="age" axisY="profit"
       legend="true" valueVisible="true" useMap="${param.useMap}"/>

</waf:body>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值