大明白的天地

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  5 随笔 :: 3 文章 :: 58 评论 :: 0 Trackbacks

Image00000.jpg

由于现在的displaytag及其valuelist等标签只是表现层的东东,和数据库无关,所以开发者将数据库中的数据传递给这些标签时
就会出现分页显示不正确的现象,由于只有将数据库中的所有记录传递给这类标签时,他才能正确处理分页,但是当数据库中的记录很大时,就变得不现实了,所以这类标签适合作为快速开发原型或者显示少量数据时应用,或者进行更改才能符合自己的需要,但是,改起来比较麻烦;
针对以上问题,我做了一个简单实用的表格标签,常用的功能也都有了,就是显示不那么灵活,只能是上面图片的样子显示,而没有更大的灵活性,但是作为常用表格显示已经够用了,其他更灵活的等将来全部重构后,来完成更好的表格标签,现在的设计思想没有考虑那么多,只是针对数据库的常用功能设计的,例如:数据的显示(避免提取数据表中的全部数据,只提取要显示的部分),在现有条件基础上可以进行灵活的用户自定义查询,正反排序等等;
具有的功能:
1)以表格的形式显示数据库中的数据,每次仅提取要显示的部分;
2)很好的处理了分页功能,不必全部提取数据后才能正确处理分页;
3)可以定义要排序的列,进行正反排序;
4)可以进行显示数据的选择,可以多选或者单选;
5)可以自定义显示数据的主要信息,用于处理或者传递数据之用;
6)由于表格显示的配置是通过配置文件实现的,所以同一个显示配置可以被重复使用
7)可以定义列为的超链接,并指定target,默认为_new
8)同一个sql语句模板可以根据传递的条件不同完成不同的功能,达到实现用户自定义查询的功能
9)可以定义一个列的日期显示样式,数据显示样式
10)可以定义某一列是否自动回行
11)常用的翻页,选择跳页,及其输入跳页值直接跳转,显示所有最大行数,最大页数机器当前页数
12)其中还带了一个下拉框标签,可以很好地解决显示数据库中多列信息的功能,并同样具有自定义要传递的信息的功能,具有默认值,空值情况下定义默认值的功能

缺少或不足的功能:
那多了,慢慢解决吧,心急吃不了热豆腐!
正常应该设计成displaytag的样子,但是本人不喜欢标签套标签,用起来麻烦,我崇尚的是简单至上,所以我写的东西不会复杂到一定程度。可能这样结构不太合理;

注意:
本标签只支持jdk1.5,及其通过jndi获得数据库连接!!
需要支持的库:castor-0.9.7-xml.jar
通过修改qixin000.xml文件更改jndi配置信息

posted on 2005-07-15 20:40 大明白 阅读(1404) 评论(8)  编辑  收藏

评论

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-07-15 20:45 大明白
样例代码:
http://www.blogjava.net/Files/qixin000/tagtest.rar

配置文件说明
http://www.blogjava.net/Files/qixin000/displaytable_readme.rar

标签用法很简单:
id:是table的id;
xmlfile:只是标签到那个配置文件里寻找显示样式
table:到指定的配置文件中寻找该值的table段
select:定义选择样式 checkbox,radio两种值可以定义
pageSize:每页要显示的记录数   回复  更多评论
  

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-07-17 11:15 笨笨
为什么你一个tag标签就需要绑定数据访问逻辑那?为什么不想办法支持调用业务类的业务方法,只要返回自定义的collection集合进行绑定不行么?  回复  更多评论
  

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-07-17 11:58 大明白
我就会想到大家可能会对这个问题进行讨论!这也是很多人喜欢框架设计人员都关心的问题!这个问题,我是知道的!
实际上我的标签内部starttag已经实现了返回所有的结合,只是在endtag的时候进行显示的,只是没有进行分开.完全可以分开,但是我现在觉得给应用的人会带来麻烦,用于显示的数据被分配到了配置文件中,完全可以根据你的替换条件完成不同的业务,(这个替换条件就是你的业务,你完全可以自己开发),但这个理由不充分,我仍然会把他改的结构更合理.
displaytag和valuelist分开了,但是并不实用,所以我现在针对大多数一般地快速开发应用.
更好的结构,我会在今后改进!  回复  更多评论
  

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-07-17 16:14 大明白
大体思路:

GridBean:标签的属性信息,和一个包含sql语句中的结果的总记录数
PageInfo:页面信息,包含一些当前页,排序条件,筛选条件等信息
DBTool:数据库工具,用于根据GridBean从文件中读取sql语句结合PageInfo形成需要的结果集.

DataTable:发送到页面的一页信息;
TableGenerator:结合PageInfo及其GridBean形成发送到页面的html表格

1)startTag:
setinfo(gridbean)
setinfo(pageinfo)
datatable = DBTool(gridbean,pageinfo)
request.setAttribute(gridbean)
request.setAttribute(datatable)

2)bodyhandle
在这里实际上可以拦截修改gridbean,及其datatable信息,
根据自己的要求控制要显示信息;

3)endTag
htmltable = TableGenerator(gridbean,pageinfo,datatable)
out.println(htmltable)
  回复  更多评论
  

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-07-26 15:56 emu
>>本标签只支持jdk1.5,及其通过jndi获得数据库连接!!

wow!一个标签还要处理数据库连接,还要获得sql语句,和底层绑定的太多,实用倒实用了,通用性呢?  回复  更多评论
  

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-07-26 16:32 大明白
是的,这个标签在设计上确实有些问题,但是挺实用,但不适合应用于现在的框架设计,因为它的内部被我给封死了,所以用户没有办法控制

如果快速开发的化,还是挺好用的,内部实现实际上,我还是分开了,只不过为了方便,把他都写到了一个标签里面,一个默认的实现,用户向扩展的话,我没有留接口

如果想更好的控制,而且结构更合理的看我的另一个标签
DisplayTagPro
它可以达到用户自己控制的程度,而且可以和现在的框架结合得很好
但是我现在刚发上去后就发现有个缺点就是,要求用户实现的是一个抽象类AbstractHandler,不是一个接口,这样就限制了用户的实用。
  回复  更多评论
  

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-08-13 13:57
我是倒是觉得valuelist更好用些。displaytag更漂亮些,适合小数据量。  回复  更多评论
  

# re: 一个自己写得很实用的表格标签: qixin000tag 2005-08-18 16:58 大明白
valuelist我看了一下,好像还得和spring结合,有些麻烦,好好的一个标签还得用spring,所以没再看她,我倒是觉得,一个这样的表格标签实际上只是显示了一页的数据,无所谓适不适和大数据量和小数据量的问题

所以只要这个标签在一页中显示的好,灵活,这个标签就是好标签,前提是用着要不麻烦,如果你把整个数据集都传给了他显示那就使开发者的问题了,而不是标签的问题?

现在我发现displaytag总是在第二页出现显示不全的问题,不知为什么,不知道有没有人遇到过这样的问题.就是第二页特殊,其他也均没有问题!!!!怪异!!!  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: