快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

标签库,永恒的争论话题

时间:2011-01-17

标签库,只是框架的一部分,为了解决页面显示数据、封装简单页面逻辑而产生的类HTML标记的组件。

所以千万不要把标签的作用神化,也不要认为学习标签是学习Web框架的重中之重,因为他们只是框架中的小小一部分。

目录

标签产生的初衷

标签,解药还是毒药

标签的发展与趋势

标签分类

标签总揽

标签产生的初衷

在JSP诞生之初,JSP提供了在HTML代码中嵌入Java代码的特性。这种特性使得我们可以比较容易的利用Java这种强类型语言的优势,完成许多复杂的业务逻辑。

不过随着时间的推移,我们发现在HTML代码中嵌入过多的Java代码,非常不利于JSP的维护和扩展。对于动辄上千行的JSP代码,很多时候,程序员基本丧失了对JSP的维护能力。基于上述的这个问题,我们尝试使用一种新的技术,来解决上面这些问题。这也就是标签产生的初衷:

1. 尽量避免在JSP页面中使用Java代码,而改用类似HTML的标签的形式来表达页面逻辑,让逻辑与显示分离,提高JSP的可维护性

2. 由于HTML自身的标签的表达能力不足,通过使用JSP Tag,可以对HTML语义进行扩展,从而完成许多HTML自身标签无法完成的工作

标签,解药还是毒药

有关标签,争论一直存在着。早在2004年的时候,robbin同学以一文《炮打Taglib,我的一张大字报!》引起了许多人对Taglib的讨论。当时,robbin同学的观点大概是这样的:

robbin 写道

我认为JSP里面使用Tag,就是一个错误!我反对在JSP里面使用Tag,我推荐大家在JSP里面写Java代码,没错,就是在JSP里面写Java代码,我就是一直这么干!

从Sun在JSP里面引入Taglib,我就认为他是一个谎言!我认为大家都被Sun欺骗了,我做JSP编程,但凡我写过的JSP,我从来不用Tag,我觉得写java代码让我很舒服,我不需要再去学习那别扭而无意义的Tag语法,来增加我的工作量,来增加我的JSP页面调试难度。

不知道时隔快5年,robbin的观点是否有所变化。在这5年中,JSP的表示层方案实际上并没有发生很大的变化。Taglib也并没有消亡,AJAX技术更加蓬勃的发展,模板技术已经被视为成熟并可供使用的重要表示层技术。

标签,到底是解药还是毒药?它到底能不能为View层开发带来便捷?这个问题,我们需要更加辩证的来看待。我们首先将所有有关标签的观点总结成正反两派:

正方

1. 标签产生的初衷没有错,它的存在,能够简化JSP开发的难度,并对HTML的许多标签进行功能扩展

2. 标签从效果上的确在一定程度上解决了在JSP页面中,避免使用Java代码的情况

3. 由于Java的语法与表现能力上的优势,使用Taglib能够极大程度的封装成块的HTML代码,从而形成一套完整的页面组件,能够极大的简化页面开发

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

时间:2011-01-17

反方

1. 标签只是为了尝试避免在JSP页面中使用Java代码,实际上,这种情况很难避免。有时候,为了达到这个目的,反而带来了更多的代码和沉重的维护成本。一个很简单的理由,编写一个Tag,至少需要一个tld文件定义、一个Java的实现类、JSP中去声明tld并编写Tag。显然,对于许多情况而言,这样所带来的代码量,反而超过了在页面上直接使用Java代码

2. 不仅如此,标签的存在为广大程序员带来了无穷无尽的学习成本。因为根据使用的框架的不同,会带来不同的标签库。再加上许多公司在标签库为基础的页面组件方面的积累,公司内部就有一套标签库,于是学习这些标签的语法已经成为了程序员的沉重负担

3. 对于以标签库为基础的页面组件,在面对经常变化的页面逻辑时,显得无能为力。因为它的维护成本极高,当逻辑变化频繁时,这些页面组件的表现能力,还不如直接通过JavaScript操作HTML DOM来的方便

为此,正反双方也是各执一词,各有道理。在这点上,JSF是强

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号