`
jindw
  • 浏览: 508542 次
  • 性别: Icon_minigender_1
  • 来自: 初到北京
社区版块
存档分类
最新评论

有没人和我一样厌倦了MVC框架各自定义的那些JSP标记库呢

阅读更多
JSP的标记库大家应该都不陌生了。
确实,他可以吧一些页面逻辑更加简单的封装一下。
可以减少不少代码。

但是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的东东, 能否放出一阅?
63 楼 dengyin2000 2008-10-28  
dan 写道
ROR Tag 代碼:
<% 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")==" ")>
   		&nbsp;
   <#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,下午就研究研究,反正闲的无聊.
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 代碼:
<% 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")==" ")>
   		&nbsp;
   <#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 还是挺方便的了

相关推荐

    CodeIgniter(PHP MVC开源框架)v3.1.10.zip

    如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架 CodeIgniter 是为谁准备的? CodeIgniter 就是你所需要的,如果... 你想要一个小巧的框架。 你需要...

    CodeIgniter php mvc框架 中国网站

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立...如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架

    CodeIgniter v1.7.3 开源框架

    如果你是一个与人共享主机并且为客户要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架,那么 CodeIgniter 就是你所需要的,如果... * 你想要一个小巧的框架。 * 你需要出色的性能。 * 你需要广泛...

    Python框架FuqIt.zip

    我已经厌倦了 MVC 愚蠢的规则,想尝试更简单的方法。我希望只要将一些文件随便放到某个目录,就可以工作。这就是 FuqIt,我自己的一个 Python 框架。 标签:FuqIt Web框架

    CodeIgniter开源框架php版v3.1.10

    如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架 CodeIgniter 是为谁准备的? CodeIgniter 就是你所需要的,如果... 你想要一个小巧的框架。 你需要...

    大学生学业厌倦情绪综述分析及表现

    厌倦情绪的定义多种多样,Berlven将其视为与唤醒水平相关的一种状态,而Barbalet则强调它是对无趣环境的烦躁反应。扎克母则认为厌倦与个体的唤醒水平、注意力和对刺激的理解有关。Mikulas等人和Csikszentmihalyi则...

    Spring-MVC-Twirl:Spring MVC 的 Twirl 模板

    Spring-MVC-Twirl Spring MVC & ( ) 模板中的实验。 对于那些厌倦了典型的 JSP 和组合框架(如 Apache Tiles、Twirl 编译时检查和模板内组合)的人来说,它可以实现更快、更安全、更清洁的工作流程。

    CodeIgniter v1.7.3 开源PHP框架.rar

    如果你是一个与人共享主机并且为客户要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架,那么 CodeIgniter 就是你所需要的,如果... * 你想要一个小巧的框架。 * 你需要出色的性能。 * 你需要广泛...

    emerald2d:2D游戏的Javascript框架

    这个项目最初被命名为 EmeraldJs,但有很多以 Js 结尾的选项,我已经厌倦了 Xjs 的命名。 这是一项正在进行的工作,(我刚刚开始)。 主要思想是拥有一个功能齐全的框架,允许任何人通过添加自定义组件并将它们链接...

    PitchBlade:PHP 5.4+ 快速原型框架

    因为我厌倦了在创建原型时重写和/或复制/粘贴代码。 我们真的需要另一个该死的框架吗? 不,我们真的没有。 请不要制作另一个该死的框架。 但是但是你说... 是的,我做到了。 问完了吗? 执照

    e4e-2013-es6:2013 年 e4e 会议上 JavaScript 模块的未来

    我厌倦了使用 Powerpoint 和 Keynote 进行制作和演示,所以我编写了这个框架。 它使用纯 HTML 中的幻灯片,结合 CSS 中的主题、布局和幻灯片转换,以及一个用于显示它们的小型 Javascript MVC 框架。 您可以在 阅读...

    python库参考手册

    python库参考手册五年前我偶然遇到了 Python, 开始了我的 Python 之旅, 我花费了大量的时间在 comp.lang.python 新闻组里回答问题. 也许某个人发现一个模块正是他想要的, 但是却不知道如何使用它. 也许某个人为他的...

    十大使用PHP框架的理由

    框架通常会定义一些标准文件夹结构,比如模型(model)、视图(view)和控制器(controller),以及库(library)和配置(configuration)等,使得项目结构更为清晰。这不仅便于个人开发者管理代码,也利于团队协作时的代码...

    AutoMapperFramework:是否厌倦了单一的地图定义文件? AutoMapperFramework 从实现头接口的类型生成映射

    是否厌倦了单一的地图定义文件? AutoMapperFramework 从实现头接口的类型生成映射。 它是如何工作的? 首先,您需要通过 NuGet 安装包: PM&gt; Install-Package AutoMapperFramework 接下来,您需要使用三个头接口...

    python-obfuscator:我已经厌倦了编写好的代码,所以我制作了好的代码来制作了不好的代码

    一天晚上,我厌倦了编写好的代码,所以我制作了好的代码来制作了不好的代码。 考虑赞助我 正在安装 pip install python-obfuscator 快速开始 打印出混淆的代码 pyobfuscate -i your_file.py 将更改应用于输入文件 ...

    CodeIgniter 框架

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立...如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架

    微型php框架代表作CI

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立...如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架

    使用 Promptr 和 GPT 自动化您的代码库 您是否希望使用 GPT 简化您的代码操作,但厌倦了复制粘贴过程?

    Promptr 是一个开源的命令行工具,专为程序员设计,旨在简化使用 GPT(Generative Pre-trained Transformer)模型,如 GPT-3 和 GPT-4,自动化代码库的维护和改进过程。这个工具消除了将代码复制粘贴到 AI 模型中...

    BaptisteCrouzet:我的自述文件项目。 在我的公共存储库上显示最新更改!

    这就是为什么我喜欢Symfony框架,带有PHPCS的PSR标准,Docker / Docker组合以及Github Actions或gitlab管道之类的存储库自动化的原因。 我也对新JavaScript框架(例如VueJS / Svelte以及更一般的JAM-Stack网站)感...

    proxy-helper:该库动态创建代理。 我厌倦了为每个 WCF 服务创建代理类,也厌倦了看到这些代理没有正确处理。 这个库不限于 WCF,你也可以用它来实例化对象,所以你可以很容易地用 WCF 服务切换本地“服务”

    我厌倦了为每个 WCF 服务创建代理类,也厌倦了看到这些代理没有正确处理。 不过,这个库并不限于 WCF,您也可以将它用于对象实例化,因此您可以非常轻松地将本地“服务”切换到 WCF 服务(希望很快可以使用 REST ...

Global site tag (gtag.js) - Google Analytics