像一颗晨土

常用链接

统计

blogs

life

最新评论

介绍ExtremeTable的下一代Jmesa

说到ExtremeTable(以下简称ET,呃,,,ET.....),可以说不知道的人甚少.不过估计用的也未必多罢了.今天,给大家介绍一个由ET的作者重新实现的一套关于Table的API.JMesa.
我是一个偶然的机会知道Jmesa,我在做一个数据展现系统的时候想寻找ET的帮忙,但发现ET己不再更新,作者把精力转移到了新的项目中,也就是这个 JMesa.这个项目的目的是为开发者提供更有效的表格展现的API,而不是简单的TagLib.无论从灵活性,易扩展性,易用性,均比ET上了一个层 次.最近Release的版本里面,并不包括TagLib.而在下一个版本(2.1.0)将会加入TagLib,目前TagLib己经可用,在SVN里已 有.只是等待下一个版本的发布,其间会有一些更新,不过会兼容目前的TagLib的.
假如我从API开始介绍JMesa,恐怕并不是个好的办法,像我以前的文章里面有介绍,结果反响不大.这次决定从TagLib入手,来给大家介绍一下Jmesa.
大家可以从附件里拿到一个Demo.注意Demo依赖JMesa以及其他Lib.在Lib文件夹下有详细说明.
现在来看看JMesa的使用:
  1. <jm:table id="product" items="products" caption="product listing">  
  2.     <jm:column property="name" sortable="true" filterable="true"/>  
  3.     <jm:column property="price" />  
  4.     <jm:column property="createdTime" />  
  5.     <jm:column property="id" title="edit">  
  6.         <a href="viewProduct.action?id="<jm:property/>"><jm:property name="name"/></a>  
  7.     </jm:column>  
  8. </jm:table>  

估计比较容易看得懂的代码吧.
Jmesa 的检签规范当中只有三个Tag:Table,Row,Column.而当前的TagLib实现中只实现了Table和Column两个(Row是可选 的).另加一个Property的Tag.此阶段,Property的Tag是很有用的,其起到的作用与Webwork的PropertyTag相差无 几, 用来获得对象的某个属性.之所以使用Property Tag是因为当前的TagLib有个限制就是暂时不支持如JSTL的${}这种写法.将来会支持,届时Property Tag也会继续获得兼容.Jeff比较倾向于使用迭代的方式实现Tag,那样可以支持${}这样的写法.不过作为TagLib的开始,问题不大.有时间再 重构一下TagLib,支持JSTL的写法.
好了,来说一说这些Tag的使用方法:
Table:
Attribute Description
id 表格的ID(必须)
items 对象或者Map的集合 (必须)
caption 表格的标题
theme 表格的主题,自定义样式
exportTypes 使用逗号分割导出的类型,目前支持导出类型有CSV,Excel
width 表格宽度
style 即表格