2007-07-31
介绍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的使用:
估计比较容易看得懂的代码吧.
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:
实际上,真正Release的版本里面将会加上var以及Limit属性.
var属性值即在Column标签里可以获得的对象变量.
Limit属性是保存在当前请求的Limit的对象名.
Row:
该Tag是可选的.实际上Jmesa提供了一系列默认的事件响应,有必要的情况下才使用.
Column:
ColumnTag的使用方法有下面几种:
将仅仅输出对象中Name属性值.列名是Name
这样可以得到自定义的列名,可以让列可查找,可排序,当然你Server端需要相应提供排序及查找功能.不过就算你不提供,客户端也会把当前结果排序和查找的.
这里结合了PropertyTag.实现自定义列显示.可以灵活定制自己的单元格.
在ColumnTag里面,使用PropertyTag的时候,可以指定Name属性,如果不指定则使用当前Column的Property属性值.
以后将支持:
这样的写法.当然会继续兼容PropertyTag,尽管不是Tag规范里的东西.
相信经过上面的一番介绍,大家对Jmesa有一定的感性认识了吧.还没有?下载Demo,扔进Tomcat 的App里跑一下就明白了.
有什么建议,请一定要告诉我 :).
我是一个偶然的机会知道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的使用:
xml 代码
- <jm:table id="product" items="products" caption="product listing">
- <jm:column property="name" sortable="true" filterable="true"/>
- <jm:column property="price" />
- <jm:column property="createdTime" />
- <jm:column property="id" title="edit">
- <a href="viewProduct.action?id=<jm:property/>"><jm:property name="name"/></a>
- </jm:column>
- </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 | 即表格的Style属性 |
| styleClass | 使用的Css的Class名字 |
| border | 表格宽 |
| cellpadding | 表格属性 |
| cellspacing | 表格属性 |
var属性值即在Column标签里可以获得的对象变量.
Limit属性是保存在当前请求的Limit的对象名.
Row:
| Attribute | Description |
| highlighter | 是否高亮显示 |
| onclick | 点击事件 |
| onmouseout | 鼠标移出事件 |
| onmouseover | 鼠标移入事件 |
Column:
| Attribute | Description |
| property | Java对象或Map的属性名 |
| title | 列的名称 |
| filterable | 是否可按过滤条件查找 |
| sortable | 是否要排序 |
| width | 列宽 |
| style | Style属性 |
| styleClass | 使用的Css的Class的名字 |
xml 代码
- <jm:column property="name"/>
将仅仅输出对象中Name属性值.列名是Name
xml 代码
- <jm:column property="name" title="名字" sortable="true" filterable="false"/>
这样可以得到自定义的列名,可以让列可查找,可排序,当然你Server端需要相应提供排序及查找功能.不过就算你不提供,客户端也会把当前结果排序和查找的.
xml 代码
- <jm:column property="id" title="edit">
- <a href="viewProduct.action?id=<jm:property/>"><jm:property name="name"/></a>
- </jm:column>
这里结合了PropertyTag.实现自定义列显示.可以灵活定制自己的单元格.
在ColumnTag里面,使用PropertyTag的时候,可以指定Name属性,如果不指定则使用当前Column的Property属性值.
以后将支持:
xml 代码
- <jm:column property="id" title="edit">
- <a href="viewProduct.action?id=${id}">${name}</a>
- </jm:column>
相信经过上面的一番介绍,大家对Jmesa有一定的感性认识了吧.还没有?下载Demo,扔进Tomcat 的App里跑一下就明白了.
有什么建议,请一定要告诉我 :).
评论
spiritfrog
2008-06-12
不好意思,刚没注意有个附件就是demo的。
spiritfrog
2008-06-12
感觉对jmesa的宣传还不够, 到了今天我才知道。
一直用displaytag的, 既然说jmesa更加简单和优雅, 有兴趣学习一下。
lz是否可以放出一个完整的demo学习学习
一直用displaytag的, 既然说jmesa更加简单和优雅, 有兴趣学习一下。
lz是否可以放出一个完整的demo学习学习
xy514817263
2008-05-07
用自带的查找的功能,控件怎么根据日期进行模糊查询阿???
phoenix520
2008-04-02
能不能像Display tag那样在每行前面加上一个行号呢?
clllg
2008-04-02
jar包弄全了,可是还是运行不起来呀,本人用的Tomcat服务器.
clllg
2008-04-01
都需要哪些jar包呀?
弄了半天,最后还是有问题,
LZ帮忙呀
The server encountered an internal error () that prevented it from fulfilling this request
弄了半天,最后还是有问题,
LZ帮忙呀
The server encountered an internal error () that prevented it from fulfilling this request
我想我是海
2007-08-22
1,可以考虑,到时给Jeff反映下意见。
2,曾经有人提出过类似的提议。Jeff的回答是,你可以利用Jmesa提供的Api实现自己的工具条。
3,没有实现导出的功能
4,重点不在Server端的程序,Server端也仅仅是为了显示分页写了一个分页函数罢了。后端要怎样用,相信每个人都有自己的想法,在这里仅作示例代码。
5,并没有模仿DiaplayTag。
谢谢。
2,曾经有人提出过类似的提议。Jeff的回答是,你可以利用Jmesa提供的Api实现自己的工具条。
3,没有实现导出的功能
4,重点不在Server端的程序,Server端也仅仅是为了显示分页写了一个分页函数罢了。后端要怎样用,相信每个人都有自己的想法,在这里仅作示例代码。
5,并没有模仿DiaplayTag。
谢谢。
mkclawhammer
2007-08-20
几点建议:
1. 分页工具栏可不可以不显示?当只有一页时,不希望显示在上面占用空间。
2. 分页工具栏上可不可以提供分页页码选择或输入?即直接跳转到某一页。
3. Example里的Limit (with AJAX) 似乎有问题, 选择导出会跳转到其他页面。
4. 服务器端分页那个Example实在很复杂,,从View层到 DAO层耦合似乎比较紧。项目中使用的话,程序员更关心的是如何拿来就用(比如Util类),不是项目中的每个程序员都有时间和耐心来搞懂一套新东西的。
5. 如果能做成.NET里的DataGridView Control就好了,不一定非要参考DisplayTag。
1. 分页工具栏可不可以不显示?当只有一页时,不希望显示在上面占用空间。
2. 分页工具栏上可不可以提供分页页码选择或输入?即直接跳转到某一页。
3. Example里的Limit (with AJAX) 似乎有问题, 选择导出会跳转到其他页面。
4. 服务器端分页那个Example实在很复杂,,从View层到 DAO层耦合似乎比较紧。项目中使用的话,程序员更关心的是如何拿来就用(比如Util类),不是项目中的每个程序员都有时间和耐心来搞懂一套新东西的。
5. 如果能做成.NET里的DataGridView Control就好了,不一定非要参考DisplayTag。
phpxer
2007-07-31
我下过JMESA的代码,看过Jmesa的DEMO,感觉很清爽。
关注中,有时间试用一下。
关注中,有时间试用一下。
我想我是海
2007-07-31
JM不是为了Ajax。
JM是一套API,EC是一套Taglib。
JM最终可以有一套TagLib,但是EC没有JM的灵活性,扩展性。从实现JM的Taglib上看来,这TagLib的实现是轻而易举的事。这正是Jmesa的威力所在。
JM是一套API,EC是一套Taglib。
JM最终可以有一套TagLib,但是EC没有JM的灵活性,扩展性。从实现JM的Taglib上看来,这TagLib的实现是轻而易举的事。这正是Jmesa的威力所在。
差沙
2007-07-31
这个跟以前的ec有什么不同呢?
感觉jeff好像是做了那个ajax的演示后,突发奇想才转到了jm。
感觉jeff好像是做了那个ajax的演示后,突发奇想才转到了jm。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 78801 次

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
Jmesa系列(三)开始使用 ...
也不算就很长了, WebContext webContext = new H ...
-- by spiritfrog -
介绍ExtremeTable的下一代 ...
不好意思,刚没注意有个附件就是demo的。
-- by spiritfrog -
介绍ExtremeTable的下一代 ...
感觉对jmesa的宣传还不够, 到了今天我才知道。一直用displaytag的, ...
-- by spiritfrog -
pager-taglib 体验
还能提供简单的 我也等着用呢 谢谢!!!!
-- by weirihai -
pager-taglib 体验
代码都挺复杂的 还能 有简单的啊
-- by weirihai






评论排行榜