锁定老帖子 主题:我觉得WEB页面的开发用模版语言很多余
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-11-11
为什么这么说呢? jsp本身嵌入java代码,而java语法和功能大家都清楚,访问对象和属性不在话下;if跳转,for,while循环等一应俱全,更有强大的计算能力,完全能胜任复杂的页面逻辑。 而脱离java再搞一套所谓的模版语言实在没有必要,一则增加学习时间,跳转和循环,如何访问对象和属性都要重新学习,而用java脚本只要懂java便可;再则灵活性没有什么超越。 如果非要说多出了什么优点,可能模版语言减少了代码量吧,但我认为减少代码量的目的是减少重复代码量,而不是什么减少文件大小。 就像下面的jsp代码,懂java的都看得懂。当中只用到一个标签jacker:print,用于将输出到页面的String中的特殊子符转义一下,其余地方都直接使用java脚本。 <%@ page errorPage="/ErrorPage.jsp" %> <%@ page language="java" contentType="text/html;CHARSET=utf8"%> <%@ taglib uri="/WEB-INF/jacker.tld" prefix="jacker" %> <%@ page import="com.bbs.jacker4ofbiz.model.*"%> <%@ page import="com.bbs.jacker4ofbiz.common.*"%> <%@ page import="com.bbs.jacker4ofbiz.common.html.*"%> <%@ page import="com.bbs.jacker4ofbiz.events.*"%> <% String pathStr = request.getContextPath();; UserProfile user = UtilEvent.getUser(request);; String boardCode = request.getParameter("boardCode");; ActionUtils.checkParams(boardCode);; Board board = Board.getBoardByCodeCache(boardCode);; Bbs bbs = (Bbs);request.getAttribute("bbs");; String recId = null ; String title = null,body = null ; if(bbs!=null);{ recId = bbs.getString("recId");; title = bbs.getString("title");; body = bbs.getString("body");; } %> <input type="hidden" name="bbsId" value="<jacker:print var='<%=recId%>'/>"> <table> <tr> <td width="20%"> 主 题 : </td> <td width="80%"> <input type="text" name="title" size="50" maxlength="100" value="<jacker:print var='<%=title%>'/>"/> </td> </tr> <tr> <td valign="top"> 内 容 : <br><br><a href="../jackerHelp/bbcode.html" target="_blank"><font color=ea9e57>(修饰说明);</font></a> </td> <td> <textarea name="body" cols="70" rows="9"><jacker:print var='<%=body%>'/></textarea> <!-- <input type="text" name="body" onblur="setTitle(this);;return true;" value=""/> --> </td> </tr> <%if(CommonConstants.YES.equals(board.getString("canUpload"););||user.isRoot(););{%> <tr> <td> 附 件 : </td> <td> <input type="file" name="attach" size="50"/> <%=board.getUploadSizeLimit();/1000%>K </td> </tr> <%}%> </table> <script> <!-- function check(form1);{ // return true; } //--> </script> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-11-11
偶是专门做页面的, 偶可不看懂那么恶心的java代码, 想让偶学习它就头大了, 还想让偶在html里面签入一堆这样恶心的代码? 哼哼.
|
|
返回顶楼 | |
发表时间:2004-11-11
文章已经被删除,删除者:dlee
原因:请不要对自己不是非常了解的技术妄加评论。介绍自己开发 JSP 的经验可以,但是不要在不清楚其它技术的时候随意加以批判。模版语言的资料很多,至少应该先看一下资料再发言(而不是等待 Readonly 喂饭吃),否则对谁都没有帮助。 “JSP才是最强大最方便的”,这句话也很成问题。JSP 的缺点早就有定论了。 |
|
返回顶楼 | |
发表时间:2004-11-11
哈哈,其实楼主不必要这样,,其实你这样比较jsp与模板语言也是不公平的,这的确是你的不了解造成的。
不要生气,这个论坛很好,给点时间自己吧,你会发觉得的。 建议你还是看一下关于表示层的主要作用与目标,还有模板语言的东东吧(这方面我也帮不到你,因为不用这个,所以就不太熟了)。 祝你好运。 |
|
返回顶楼 | |
发表时间:2004-11-11
goldrain 写道 Readonly 写道 偶是专门做页面的, 偶可不看懂那么恶心的java代码, 想让偶学习它就头大了, 还想让偶在html里面签入一堆这样恶心的代码? 哼哼.
赫赫,这算是一个不了解java的开发员的看法吧。 那你用什么模版语言?学习模版语言不也花时间么? 模版语言通常的访问对象可以,但页面逻辑复杂点,模版语言能行么? velocity, freemarker偶都用的, 而且只花了2个小时就学完了, 实际应用中遇到问题的时候就翻一下只有几页的语法手册, 比学个java要花1个星期, 查个javadoc要n页方便多了. 回到你的问题: if(CommonConstants.YES.equals(board.getString("canUpload"))||user.isRoot() 为什么后台程序员不在board对象里面写上一个封装好的canUpload()的方法呢? canUpload() { return CommonConstants.YES.equals(this.getString("canUpload")) || RemoteUser.get().isRoot(); } 而非要页面编写者做一堆代码呢? 而且这些代码还会分散在各处, 想起来就恶心呀...... |
|
返回顶楼 | |
发表时间:2004-11-11
goldrain 写道 dlee 写道 文章已经被删除,删除者:dlee
原因:请不要对自己不是非常了解的技术妄加评论。介绍自己开发 JSP 的经验可以,但是不要在不清楚其它技术的时候随意加以批判。模版语言的资料很多,至少应该先看一下资料再发言(而不是等待 Readonly 喂饭吃),否则对谁都没有帮助。 “JSP才是最强大最方便的”,这句话也很成问题。JSP 的缺点早就有定论了。 哦,这就是你们讨论问题的方式! 我的确不了解很多技术,原来来这里什么技术都要了解才能发言?! 至少我自己用ofbiz独立开发了一个论坛。 我是不很了解模版语言评论了,但我加了“我觉得”。 什么是论坛?不就是互相交流一起提高么?没想到你们这些所谓的高手这么不耐烦。我就纳闷这么多的高人在发帖删帖,中国的软件业也就这么不成气候。 为什么?原来高人太多了! 既然你用ofbiz开发过论坛, 你应该知道ofbiz在2.1版本以后, 从原来的jsp转到了模板语言 (jpublish/freemarker), 原因么? 你可以去搜索一下mail list, 或者发信问问看David or Andy. 这些都是好几年的事情了, 还在这里讨论jsp的优缺点, 以及比较jsp和template language实在是有些无聊. |
|
返回顶楼 | |
发表时间:2004-11-11
velocity, freemarker偶都用的, 而且只花了2个小时就学完了, 实际应用中遇到问题的时候就翻一下只有几页的语法手册, 比学个java要花1个星期, 查个javadoc要n页方便多了.
-------------------------- 这倒可能是的,从学习角度讲模版语言是更容易,但改天你换个项目要用jpublish,然后你又得学习。 回到你的问题: if(CommonConstants.YES.equals(board.getString("canUpload"))||user.isRoot() 为什么后台程序员不在board对象里面写上一个封装好的canUpload()的方法呢? canUpload() { return CommonConstants.YES.equals(this.getString("canUpload")) || RemoteUser.get().isRoot(); } 而非要页面编写者做一堆代码呢? 而且这些代码还会分散在各处, 想起来就恶心呀...... ------------- 页面编写者当然希望代码简单,调用方便。但总是要考虑可能会出现展示逻辑复杂的情况吧。 我对模版语言的确不很了解,你能告诉我除了学习量小,代码简单外还有什么优点? |
|
返回顶楼 | |
发表时间:2004-11-11
goldrain 写道 这倒可能是的,从学习角度讲模版语言是更容易,但改天你换个项目要用jpublish,然后你又得学习。 jpublish并不是一个模板语言, 它只是一个粘合剂, 它使用脚本(如javascript, beanshell等)做模板数据的准备, 然后再使用velocity或者freemarker这些模板语言做渲染. 所以说, 先了解了再批判. 谈到学习成本, velocity和freemarker都是被广泛支持的模板语言, 现在如果哪个web mvc framework还不支持他们其中的一个, 那就不要出来混了. (webwork, spring mvc, struts), 学了其中的一个就够用了, 偶们会举一反三嘛...... goldrain 写道 页面编写者当然希望代码简单,调用方便。但总是要考虑可能会出现展示逻辑复杂的情况吧。 我对模版语言的确不很了解,你能告诉我除了学习量小,代码简单外还有什么优点? 偶是没有遇到过显示逻辑复杂到模板语言处理不了的情况, 经验有限, 惭愧惭愧...... 偶认为模板语言的最大优点就是让你不能天马行空地插入一陀java代码. hoho |
|
返回顶楼 | |
发表时间:2004-11-11
jpublish并不是一个模板语言, 它只是一个粘合剂, 它使用脚本(如javascript, beanshell等)做模板数据的准备, 然后再使用velocity或者freemarker这些模板语言做渲染. 所以说, 先了解了再批判.
谈到学习成本, velocity和freemarker都是被广泛支持的模板语言, 现在如果哪个web mvc framework还不支持他们其中的一个, 那就不要出来混了. (webwork, spring mvc, struts), 学了其中的一个就够用了, 偶们会举一反三嘛...... --------------------- 原来如此,长见识了 偶认为模板语言的最大优点就是让你不能天马行空地插入一陀java代码. hoho -------------- 这也是我觉得它绑住了我的手脚的地方,可能因为我更熟悉java语法吧。 另外,ofbiz3.0里多数页面使用了.ftl等模版文件,但仍有很多是.jsp文件。 |
|
返回顶楼 | |
发表时间:2004-11-11
庄表伟 写道 这个原因我认为不能称为删除的理由!
建议恢复。 呵呵,版主认为这个帖子不够水准,算了 |
|
返回顶楼 | |