struts-layout的缺陷之一

        这几天捣鼓了一下struts-layout这个TagLib,当然,因为应用的关系,只适用了其collection列表相关的部分,总体来说感觉是不错的,比如对分页和排序都提供了比较不错的解决方案,虽然现在对于sortType的支持还很局限。

        但是,却依然也存在一些缺陷,让你不得不“重写一些方法,甚至覆盖一个完整的类来完善”,当然,这本身也是TagLib机制本身的缺陷之一,至少JSP TagLib的扩展机制不够良好。
       
        Struts-Layout虽然支持整个列表的styleClass和collectionItem到styleClass的样式设置,但唯独缺少了对TR(每行)的样式设置。—— 这种缺陷是很严重了,特别是对于国内web应用来说,实现隔行换色、选行着色之类的应用,要大打折扣了。

  正如刚刚所说的那样,TagLib的机制是“限制型”的,属性一旦申明是不可扩展的;其次,Struts-Layout在实现过程中,对于行为,也没有提供比较好的“接口化扩展”。比如对于某一行的渲染,其代码是写死在BasicCollection类中的,而没有任何其他可以“Plugin”的接口或途径。

  为了让Struts-Layout的Collection Tag能够支持设置TR的渲染样式,我不得不做了如下的操作:
  (1)重新写了一个类XXXCollectionTag extends CollectionTag,重新申明了一个styleClassTR的属性;
  (2)重写了XXXBasicCollection extends BasicCollection,重写写一个doStartItem这个方法。
  (3)修改struts-layout.tld文件,增加一个collection tag的属性描述。
        (4)修改了Struts-Layout.properties配置文件,如下:

# implementor of the CollectionInterface to use
collection.class = fr.improve.struts.taglib.layout.util.BasicCollection

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值