- 浏览: 508542 次
- 性别:
- 来自: 初到北京
最新评论
-
javamonkey:
有点老了,有个Teb测试,这个性能测试很标准http://gi ...
几款模板引擎的性能对比 -
greenlaw110:
xuyao 写道sdh5724 写道xuyao 写道很好,nn ...
几款模板引擎的性能对比 -
sefier:
不知道你看的是哪个版本的,现在所看到的版本和你所描述的不一致, ...
Facebook XHP 调研 -
javatar:
我觉得从通用语言去思考可能更有意思,满足八封其实就是一个完备集 ...
五行通天地 八卦定乾坤--打算按照先天八卦的形制重构Lite模版引擎的指令集 -
luo2pei4321:
MVEL的官方例子里面好像只支持Integer和String两 ...
表达式引擎JSEL介绍
JSP的标记库大家应该都不陌生了。
确实,他可以吧一些页面逻辑更加简单的封装一下。
可以减少不少代码。
但是Struts一套,Webwork一套,JSF又是一套,我们还活不活了。
其实,我感觉很多标记库真的很鸡勒。
比如说:
struts的html:input,Webwork的 ww:textfield等等。
使用标记库后,我没有感觉到简单多少,反而增加了不少学习负担,是不是的莫名奇妙的错误。我以前就常把html:text用作输入表单。还有用来表示select控件的那些标记库,更是让人头疼(本人记性不好,学了又忘,忘了又学)
这类玩意根本也没必要自立一套标准。
很多事情直接用html语法就可以表示清楚,虽然各个框架自己定义了一套标准确实更加简单一点点。
什么叫做不伦不类。
Tag可用,但是要用对了。Tag是view层的东西,所以问题在于要保持其作用范围在view,严格说应该保持与业务代码绝对不相关。如果Tag里面除了展现逻辑之外,包含了业务逻辑,那么叫做不伦不类。
Tag的目标是把展现中的公共成分逻辑封装,让页面代码简洁。从团队角度考虑,说,一个应用场景,你用jstl,很干净、没有其他tag,很爽的写了20行代码搞定了。遇到下一个情况你的小弟依然要写同样的20行代码。但是如果你把公共部分抽离出来形成自己的一个标记,在页面里面用一行可以代替了那20行,那么你的无数个小弟在做同类的事情的时候只需要写1行代码。 学习成本孰轻孰重。
Tag做表现逻辑代码复用是有意义的。
呵,其实以前我也是用过标签的,Struts的,JSTL的,包括自己定义的,但感觉就是将重复出现的一对HTML和JSP代码封装在类里而已,和自己用个普通类封装,然后outprint()一下,也没啥区别,可能唯一区别就是可读和可定义性强一点。或许“不伦不类”谈不上,但至少我对标签不是很感兴趣,所以基本不用它。
标签还可以从用啊! 我感觉标签在有些地方,是非常有价值的。
比如封装一个列表显示的标签,这样,所有页面需要展示列表,只要打一个标签就可以了,而不需要每个页面都要写很多HTMl,js等。而且维护的时候,只要修改一个java类,就完成了所有页面的修改。
这些通用的东西,封成标签,是有必要的。
更牛了,不用别人造的轮子,自己再重新造,第三套轮子
不知道是批评还是.....
不过我感觉,具体怎么做,还是根据公司业务不同,有不同的要求。
比如,公司要是做业务的,系统的架构,自己说的算,没一个项目,用的技术架构都一样,也不会像楼主说的,既有struts标签,又有其他各种框架的标签。
还比如,公司是做产品平台的,就需要推出一套自己的UI,对产品平台进行封装,这样开发业务功能的人员,就可以越过UI,直接考虑业务功能,而UI是封装成单独的模块,修改展现形式,是不需要业务开发的人,做任何修改的。
所以,我任务,怎么做,还是一个人一个样,没有好坏之分。主要看需求,找到一个满足自己公司代码发展的写法,让工作量减少,学习简单最重要。
什么叫做不伦不类。
Tag可用,但是要用对了。Tag是view层的东西,所以问题在于要保持其作用范围在view,严格说应该保持与业务代码绝对不相关。如果Tag里面除了展现逻辑之外,包含了业务逻辑,那么叫做不伦不类。
Tag的目标是把展现中的公共成分逻辑封装,让页面代码简洁。从团队角度考虑,说,一个应用场景,你用jstl,很干净、没有其他tag,很爽的写了20行代码搞定了。遇到下一个情况你的小弟依然要写同样的20行代码。但是如果你把公共部分抽离出来形成自己的一个标记,在页面里面用一行可以代替了那20行,那么你的无数个小弟在做同类的事情的时候只需要写1行代码。 学习成本孰轻孰重。
Tag做表现逻辑代码复用是有意义的。
呵,其实以前我也是用过标签的,Struts的,JSTL的,包括自己定义的,但感觉就是将重复出现的一对HTML和JSP代码封装在类里而已,和自己用个普通类封装,然后outprint()一下,也没啥区别,可能唯一区别就是可读和可定义性强一点。或许“不伦不类”谈不上,但至少我对标签不是很感兴趣,所以基本不用它。
我还是最喜欢tapestry的
确实,他可以吧一些页面逻辑更加简单的封装一下。
可以减少不少代码。
但是Struts一套,Webwork一套,JSF又是一套,我们还活不活了。
其实,我感觉很多标记库真的很鸡勒。
比如说:
struts的html:input,Webwork的 ww:textfield等等。
使用标记库后,我没有感觉到简单多少,反而增加了不少学习负担,是不是的莫名奇妙的错误。我以前就常把html:text用作输入表单。还有用来表示select控件的那些标记库,更是让人头疼(本人记性不好,学了又忘,忘了又学)
这类玩意根本也没必要自立一套标准。
很多事情直接用html语法就可以表示清楚,虽然各个框架自己定义了一套标准确实更加简单一点点。
评论
73 楼
guokecheng
2008-10-28
JSTL最最标准的。脱离了任何一个MVC还是一样流行,建立在el基础之上的。我喜欢。
72 楼
d8111
2008-10-28
特别是struts2的标签。。超级难用
71 楼
zxming12345
2008-10-28
zeelong2 写道
梦秋雨 写道
zeelong2 写道
Taglib,不伦不类的,基本不甩它
什么叫做不伦不类。
Tag可用,但是要用对了。Tag是view层的东西,所以问题在于要保持其作用范围在view,严格说应该保持与业务代码绝对不相关。如果Tag里面除了展现逻辑之外,包含了业务逻辑,那么叫做不伦不类。
Tag的目标是把展现中的公共成分逻辑封装,让页面代码简洁。从团队角度考虑,说,一个应用场景,你用jstl,很干净、没有其他tag,很爽的写了20行代码搞定了。遇到下一个情况你的小弟依然要写同样的20行代码。但是如果你把公共部分抽离出来形成自己的一个标记,在页面里面用一行可以代替了那20行,那么你的无数个小弟在做同类的事情的时候只需要写1行代码。 学习成本孰轻孰重。
Tag做表现逻辑代码复用是有意义的。
呵,其实以前我也是用过标签的,Struts的,JSTL的,包括自己定义的,但感觉就是将重复出现的一对HTML和JSP代码封装在类里而已,和自己用个普通类封装,然后outprint()一下,也没啥区别,可能唯一区别就是可读和可定义性强一点。或许“不伦不类”谈不上,但至少我对标签不是很感兴趣,所以基本不用它。
标签还可以从用啊! 我感觉标签在有些地方,是非常有价值的。
比如封装一个列表显示的标签,这样,所有页面需要展示列表,只要打一个标签就可以了,而不需要每个页面都要写很多HTMl,js等。而且维护的时候,只要修改一个java类,就完成了所有页面的修改。
这些通用的东西,封成标签,是有必要的。
70 楼
pyp
2008-10-28
谁规定必须用用了 jstl <%=%>不都很好么
69 楼
zxming12345
2008-10-28
amonlei 写道
zxming12345 写道
没办法,自己封装一套ui吧。这样就好了。当然公司的人手够多。美工也的很厉害。我们部门的ui都封装到了标签里,这样,开发起来就很简单了。
更牛了,不用别人造的轮子,自己再重新造,第三套轮子
不知道是批评还是.....
不过我感觉,具体怎么做,还是根据公司业务不同,有不同的要求。
比如,公司要是做业务的,系统的架构,自己说的算,没一个项目,用的技术架构都一样,也不会像楼主说的,既有struts标签,又有其他各种框架的标签。
还比如,公司是做产品平台的,就需要推出一套自己的UI,对产品平台进行封装,这样开发业务功能的人员,就可以越过UI,直接考虑业务功能,而UI是封装成单独的模块,修改展现形式,是不需要业务开发的人,做任何修改的。
所以,我任务,怎么做,还是一个人一个样,没有好坏之分。主要看需求,找到一个满足自己公司代码发展的写法,让工作量减少,学习简单最重要。
68 楼
lizhuang
2008-10-28
jstl+el,有需求的时候自己写标签和自定义EL
67 楼
koda
2008-10-28
曾经被很炫吓傻,曾经被很乱吓哭
66 楼
zhangxingxingye
2008-10-28
el表达式
65 楼
zeelong2
2008-10-28
梦秋雨 写道
zeelong2 写道
Taglib,不伦不类的,基本不甩它
什么叫做不伦不类。
Tag可用,但是要用对了。Tag是view层的东西,所以问题在于要保持其作用范围在view,严格说应该保持与业务代码绝对不相关。如果Tag里面除了展现逻辑之外,包含了业务逻辑,那么叫做不伦不类。
Tag的目标是把展现中的公共成分逻辑封装,让页面代码简洁。从团队角度考虑,说,一个应用场景,你用jstl,很干净、没有其他tag,很爽的写了20行代码搞定了。遇到下一个情况你的小弟依然要写同样的20行代码。但是如果你把公共部分抽离出来形成自己的一个标记,在页面里面用一行可以代替了那20行,那么你的无数个小弟在做同类的事情的时候只需要写1行代码。 学习成本孰轻孰重。
Tag做表现逻辑代码复用是有意义的。
呵,其实以前我也是用过标签的,Struts的,JSTL的,包括自己定义的,但感觉就是将重复出现的一对HTML和JSP代码封装在类里而已,和自己用个普通类封装,然后outprint()一下,也没啥区别,可能唯一区别就是可读和可定义性强一点。或许“不伦不类”谈不上,但至少我对标签不是很感兴趣,所以基本不用它。
64 楼
lcllcl987
2008-10-28
与楼主同感。
有了EL和velocity, freemark, 就很好用了。
比较感兴趣楼主简化webworks的东东, 能否放出一阅?
有了EL和velocity, freemark, 就很好用了。
比较感兴趣楼主简化webworks的东东, 能否放出一阅?
63 楼
dengyin2000
2008-10-28
dan 写道
ROR Tag 代碼:
Grails Tag 代碼:
Wicket Tag 代碼:
Freemarker Tag 代碼: 可選用與不用但一般為了加速開發都會使用macro
不要只看別人的缺點,多看看別人的優點,心自然快樂舒坦。
<% form_remote_tag :url => {:action =>:add_to_cart, :id => product} do%> <%= submit_tag "Add to Cart" %> <% end %>
Grails Tag 代碼:
<g:form name="myForm" url="[controller:'book',action:'list']">...</g:form>
Wicket Tag 代碼:
<wicket:link> <a href = "Page1.html">Page1</a><br/> </wicket:link> <wicket:panel> <div wicket:id="hideInPortlet"><a href="index.html" style="color: #E9601A" target="_top"> </div> <br/> </wicket:panel>
Freemarker Tag 代碼: 可選用與不用但一般為了加速開發都會使用macro
<#macro dateEmpty datevalue> <#if (datevalue?string("yyyy/MM/dd") =="1900/01/01" || datevalue?string("yyyy/MM/dd")=="" || datevalue?string("yyyy/MM/dd")==" ")> <#else> ${datevalue?date} </#if> </#macro>
不要只看別人的缺點,多看看別人的優點,心自然快樂舒坦。
我还是最喜欢tapestry的
<form t:type="form"> <input t:type="textfield" value="user.name" /> </form>
62 楼
aone
2008-10-28
我现在用jstl..
看了贴子这么多人推荐freemarker,下午就研究研究,反正闲的无聊.
看了贴子这么多人推荐freemarker,下午就研究研究,反正闲的无聊.
61 楼
alfred.w
2008-10-28
freemarker
60 楼
bellstar
2008-10-28
为什么没人用XSLT
59 楼
kavguodawei
2008-10-28
楼主同感啊
58 楼
erikchang
2008-10-28
支持楼主,每一个开源框架都害怕自己少点东西,同时也希望自己垄断一些,这样就导致了一堆标签的出现,反而让大家都产生了厌恶的感觉!
57 楼
dan
2008-10-27
ROR Tag 代碼:
Grails Tag 代碼:
Wicket Tag 代碼:
Freemarker Tag 代碼: 可選用與不用但一般為了加速開發都會使用macro
不要只看別人的缺點,多看看別人的優點,心自然快樂舒坦。
<% form_remote_tag :url => {:action =>:add_to_cart, :id => product} do%> <%= submit_tag "Add to Cart" %> <% end %>
Grails Tag 代碼:
<g:form name="myForm" url="[controller:'book',action:'list']">...</g:form>
Wicket Tag 代碼:
<wicket:link> <a href = "Page1.html">Page1</a><br/> </wicket:link> <wicket:panel> <div wicket:id="hideInPortlet"><a href="index.html" style="color: #E9601A" target="_top"> </div> <br/> </wicket:panel>
Freemarker Tag 代碼: 可選用與不用但一般為了加速開發都會使用macro
<#macro dateEmpty datevalue> <#if (datevalue?string("yyyy/MM/dd") =="1900/01/01" || datevalue?string("yyyy/MM/dd")=="" || datevalue?string("yyyy/MM/dd")==" ")> <#else> ${datevalue?date} </#if> </#macro>
不要只看別人的缺點,多看看別人的優點,心自然快樂舒坦。
56 楼
yifeng
2008-10-27
对于页面我觉得还是普通html效率高,那些自定义标签又增加了一步,取值jstl + el足够了,如果是公用的弄个模板即可
55 楼
toby941
2008-10-27
不是有IDE提示么,不需要记住和多标签,半半拉拉记得就行了
54 楼
kombest
2008-10-27
Spring MVC Tag 还是挺方便的了
发表评论
-
某某三木被抓起来了,高兴。
2010-05-16 20:41 1257最初知道这个名字,是刚来北京的时候,小区门缝里到处塞瞒他们的广 ... -
好厉害的西风
2009-10-18 23:55 1155突然变冷了,好大的西风,小区院子里的树叶子一下子变黄了,特别是 ... -
一起给祖国祝寿
2009-10-02 16:47 1620今年的国庆晚会确实不错,可惜,昨天忙着调试程序,忙到凌晨5点, ... -
几点PHP相关的性能测试
2009-09-05 16:43 01.函数调用开销很大 ... -
匪夷所思的php语法
2009-09-05 13:55 1497如下例子: "0" || '1' = ... -
安心等待手机第三次丢失
2009-08-17 13:49 1291最近一个月内连续丢了两次,第一次是丢在酒店,两天后发现,给要了 ... -
从来不缺人才南宋王朝
2009-08-09 19:47 1885韩世忠 黄天荡一战,区区八千余人,大战金兀术10万大军, ... -
青草长,清梦扰,谷歌门前山羊好。
2009-08-03 08:50 1237在公交站等公交,某位同学感叹到:人生最大的悲剧就是有钱攥手里花 ... -
SOS 剧毒 五氧化二矾
2009-07-08 22:21 1083老家上游不到3里路处一个灌溉用水库附近要建 五氧化二矾 提炼工 ... -
PHP操作zip文件时有严重的内存泄漏问题
2009-06-18 23:47 2282问题最初发现在 JSI 的php版本调试程序里面;window ... -
记一件极其罕见,极其尴尬,极其荒唐的事情
2009-04-12 16:25 2999周六在新中关地下广场吃饭。遇见一件极其荒唐的事情。 事情是这 ... -
走的太远
2009-04-02 21:22 1352昨晚和一个网友探讨前端模板的支持方式。 得到的反馈是: 引用不 ... -
Cygwin也太邪恶了
2009-03-01 15:26 1009直接把我的“C:\Windows\system32”当默认零时 ... -
一点关于演讲经验的总结
2009-02-28 17:31 956这周连续两次演讲。 一次是公司内部培训。 因为ppt写的还不错 ... -
心情不好
2009-02-19 11:13 999看雪 晚醒头昏昏 起帘路茫茫 乱点猢狲印 何处觅归程 -
Google 咋能这么牛呢?
2009-02-16 23:27 1437今天有点无聊,Google了一下自己的全名:金大为 发现第一个 ... -
打算编写一下Lite的简介并重新整理一下JSI的简介
2009-02-14 12:49 1230目标是吧JSI 继续阴柔化 ... -
Title 的问题
2009-02-13 17:33 1040称谓难,难于行蜀道。 小时候,问路的时候,男的称叔叔,女的称阿 ... -
是继续堕落还是努力改变
2009-02-13 00:47 1117毕业五年了,时间过得快了,自己的脚步却慢了。 没毕业的时候 ... -
春节假期第6天,想做的事情终于差不多了
2009-01-31 02:48 1018最后一次打包,发布,单元测试,手动测试。 一切运行正常。 o ...
相关推荐
如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架 CodeIgniter 是为谁准备的? CodeIgniter 就是你所需要的,如果... 你想要一个小巧的框架。 你需要...
CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立...如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架
如果你是一个与人共享主机并且为客户要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架,那么 CodeIgniter 就是你所需要的,如果... * 你想要一个小巧的框架。 * 你需要出色的性能。 * 你需要广泛...
我已经厌倦了 MVC 愚蠢的规则,想尝试更简单的方法。我希望只要将一些文件随便放到某个目录,就可以工作。这就是 FuqIt,我自己的一个 Python 框架。 标签:FuqIt Web框架
如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架 CodeIgniter 是为谁准备的? CodeIgniter 就是你所需要的,如果... 你想要一个小巧的框架。 你需要...
厌倦情绪的定义多种多样,Berlven将其视为与唤醒水平相关的一种状态,而Barbalet则强调它是对无趣环境的烦躁反应。扎克母则认为厌倦与个体的唤醒水平、注意力和对刺激的理解有关。Mikulas等人和Csikszentmihalyi则...
Spring-MVC-Twirl Spring MVC & ( ) 模板中的实验。 对于那些厌倦了典型的 JSP 和组合框架(如 Apache Tiles、Twirl 编译时检查和模板内组合)的人来说,它可以实现更快、更安全、更清洁的工作流程。
如果你是一个与人共享主机并且为客户要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架,那么 CodeIgniter 就是你所需要的,如果... * 你想要一个小巧的框架。 * 你需要出色的性能。 * 你需要广泛...
这个项目最初被命名为 EmeraldJs,但有很多以 Js 结尾的选项,我已经厌倦了 Xjs 的命名。 这是一项正在进行的工作,(我刚刚开始)。 主要思想是拥有一个功能齐全的框架,允许任何人通过添加自定义组件并将它们链接...
因为我厌倦了在创建原型时重写和/或复制/粘贴代码。 我们真的需要另一个该死的框架吗? 不,我们真的没有。 请不要制作另一个该死的框架。 但是但是你说... 是的,我做到了。 问完了吗? 执照
我厌倦了使用 Powerpoint 和 Keynote 进行制作和演示,所以我编写了这个框架。 它使用纯 HTML 中的幻灯片,结合 CSS 中的主题、布局和幻灯片转换,以及一个用于显示它们的小型 Javascript MVC 框架。 您可以在 阅读...
python库参考手册五年前我偶然遇到了 Python, 开始了我的 Python 之旅, 我花费了大量的时间在 comp.lang.python 新闻组里回答问题. 也许某个人发现一个模块正是他想要的, 但是却不知道如何使用它. 也许某个人为他的...
框架通常会定义一些标准文件夹结构,比如模型(model)、视图(view)和控制器(controller),以及库(library)和配置(configuration)等,使得项目结构更为清晰。这不仅便于个人开发者管理代码,也利于团队协作时的代码...
是否厌倦了单一的地图定义文件? AutoMapperFramework 从实现头接口的类型生成映射。 它是如何工作的? 首先,您需要通过 NuGet 安装包: PM> Install-Package AutoMapperFramework 接下来,您需要使用三个头接口...
一天晚上,我厌倦了编写好的代码,所以我制作了好的代码来制作了不好的代码。 考虑赞助我 正在安装 pip install python-obfuscator 快速开始 打印出混淆的代码 pyobfuscate -i your_file.py 将更改应用于输入文件 ...
CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立...如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架
CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立...如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架
Promptr 是一个开源的命令行工具,专为程序员设计,旨在简化使用 GPT(Generative Pre-trained Transformer)模型,如 GPT-3 和 GPT-4,自动化代码库的维护和改进过程。这个工具消除了将代码复制粘贴到 AI 模型中...
这就是为什么我喜欢Symfony框架,带有PHPCS的PSR标准,Docker / Docker组合以及Github Actions或gitlab管道之类的存储库自动化的原因。 我也对新JavaScript框架(例如VueJS / Svelte以及更一般的JAM-Stack网站)感...
我厌倦了为每个 WCF 服务创建代理类,也厌倦了看到这些代理没有正确处理。 不过,这个库并不限于 WCF,您也可以将它用于对象实例化,因此您可以非常轻松地将本地“服务”切换到 WCF 服务(希望很快可以使用 REST ...