快速业务通道

标签库,永恒的争论话题 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
加框架本身特有的特性。所以,这类标签,如果使用得当,将为开发带来极大的便捷。如果这类标签使用不当,则会带来很大的学习成本和维护成本。事实上,这些标签对于JSP来说,并不是必须的,只是对UI的开发起到辅助的作用。

小结

除了上述这3类Taglib以外,我们还会有很多综合类的Taglib,这些Taglib往往都是为了解决特定的页面逻辑或者页面展示而做出的自定义的标签。

在我们仔细分析了标签的分类之后,我们能够发现,前两类的标签实际上对于一个框架和JSP开发而言,是具备价值的,也是必不可缺的元素,而对于后一类的标签,我们应该谨慎对待。事实上,这些标签往往可以通过其他的方式代替。我想许多针对标签的反对的声音,绝大多数也来自于最自定义的页面组件标签的抨击。如果你在UI的标签上,表现出了学习上的不适应性,那么你完全可以思考着采取其他的方案来代替,而不是在一条死胡同里面。

标签总揽

首先,我并不想在这里举出非常具体的例子来说明每一个标签中每个属性的用法,因为这些东西其实大家都可以通过API手册获得,我希望列出一些在设计思想上有所差异的标签种类,并细细品味一下这些Web层标签的设计初衷和设计思想。

Struts / Webwork

Struts和Webwork的标签是最传统的标签。按照我上面所说的分类,Struts和Webwork基本上在每个分类上都有相应的标签实现。不仅如此,Struts2还在页面组件化上下了点功夫,将许多页面组件定义成了标签的实现。我个人对Struts2的这种做法持保留态度,因为Taglib毕竟在扩展性和实用性上不如直接使用JavaScript等成熟的框架来的方便。

不过Struts和Webwork的标签相对来说还是比较好用的,因为它的许多内部实现与HTML自身的标签属性非常一致,降低了程序员学习的成本。

标签库,永恒的争论话题(4)

时间:2011-01-17

JSTL

JSTL也是时下非常流行的一个标签库。由于JSTL是Sun力推的标准化标签库,所以其刚刚诞生,就奠定了其试图统一标签世界的想法。不过实际上,从标签的分类中,我们也可以看到,JSTL主要实现的内容,是第一类和第二类的标签,而没有第三类标签。按照它的想法,第三类的标签应该由用户自己去实现,或者采用其他的替代方案。

JSTL的好处是毋庸置疑的。它会依次从page、request、session、application作用域中查找表达式的值,使得它能够兼容一切Web框架。因为所有的Web框架基本上还是围绕着这些Servlet对象来打交道。另外一方面,JSTL的标签数量比较少,学习成本很低,所以很多程序员都喜欢学习它。

Tapestry

Tapestry的思路与其他Web框架实现标签的思路全都不同。Tapestry提倡所有的页面都HTML化,不应引入额外的HTML标签,如果你需要实现页面逻辑,应该以组件的形式完成,而这些组件的页面调用方式,是在HTML标签中加入一些自定义的属性。

Html代码

<table>  
    <tr>  
         <td>User Name</td>  
         <td>Action</td>  
    </tr>  
    <tr jwcid="@Foreach" source="ognl:users" element="tr" value="ognl:user">  
         <td><span jwcid="@Insert" value="ognl:user.name">Quake Wang</span></td>  
         <td><a href="#" jwcid="@ActionLink" listener="ognl:listeners.deleteUser">Delete</a> <a href="#" jwcid="@ActionLink" listener="ognl:listeners.updateUser">Update</a></td>  
    </tr>  
</table>

 

这里我引用了Quake Wang同学曾经使用过的例子。虽然这个

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号