论坛首页 Java企业应用论坛

模板:velocity和freemarker的比较

浏览 59051 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-06-08  
likeblood 写道
我比较关心在不同的操作系统中对中文的支持

java不是说一次编写到处运行的吗,所以这个关心好像是多余的吧,而且我们现在的情况就是在windows下开发,在linux上运行,没发现有什么问题
0 请登录后投票
   发表时间:2007-07-09  
在下认为应该用辨证的观点看待一个事物.我一直用velocity做view,我是用webwork的action,通过hibernate取得结果存入valuestack,然后用velocity显示,除了处理不了数组(其实也能处理,就是#foreach数组,别的方法在下就不知了),其他一切表现良好!
个人认为,velocity的优势如下:
1.可以方便地操纵对象(ogna),如valueStack里有一个user,则velocity视图里可以写$user.name
2.语法简洁,简单,有foreach和if else end就够了(它设计的初衷也是成为标准的模板(语言))!
3.使用dreamweaver可以方便编写(注:velocity做view时扩展名直接用htm就可以,在下一直这么用)
4.#parse可以使你方便地复用或模块化view块.
其不方便的地方也有
1.最不方便的就是处理数组等.
   比如:
   action代码,
   
this.setResult("select sum(t.backNum),sum(t.hits) from article as t");
,随便说的一个例子,取得总的评论数和点击数,这样valueStack里就有了result,供velocity视图使用.如何显示呢?我没有好的办法,只能是:
  
#foreach($temp in $result)
  #if($velocityCount == 1)
    #set($number = $temp)
  #else
    #set($hits = $temp)
  #end
#end
总的评论数为:$number;
总的点击数为:$hits

大家有好的方法请告诉在下,不胜感激!
至于freemarker,个人认为其功能的确要强一些.但由于涉猎较少,不便出言评论,呵呵!
0 请登录后投票
   发表时间:2007-07-09  

还是比较喜欢 freemarker 的 macro

我的页面框架、分页组件,全部做到 macro,用起来超方便。

在 BaseAction 里面内置分页对象,通过 freemarker macro 根据 pagination 对象状态控制分页组件。觉得比 vel 方便得多。
0 请登录后投票
   发表时间:2007-07-23  
在项目中我一直使用Velocity.
我们并没有大量的使用macro来做分页,格式化,select等标签生成,
而是使用一个util类来完成.
在java中控制代码的能力要比macro强多了吧.

并且不使用eclipse插件来完成velocity代码添加,
而是使用dw cs3,
加入一个velocity插件,
能比较明显的分离出velocity脚本.

总之,个人觉得velocity做模板不错了.
freemarker不怎么用过,
以前听说用的人很多,
不过今天看来velocity要火点呢.
0 请登录后投票
   发表时间:2007-07-23  
velocity我没用过。
不过freemarker用下来,最大的缺点就是中文支持不好。在中文页面上,常常因为汉字只算1个字节,变形。
0 请登录后投票
   发表时间:2007-07-23  
VELOCITY用过一段时间, 里面是有很多特性是很独到的, 暂时感觉查询数据用VM就行了, 做增删改的操作还是和ACTION交互, 这样可以更容易优化整个系统。没有用过FREEMARKER,所以只能说说和JSP的比较。与JSP相比,VM的#逻辑语句和JSP标签基本都可以实现现有的页面逻辑需求(都比STRTUS好用 ^_^个人习惯),速度方面差不多了,就是有时如果VM文件大小不变的修改了一下, 有时页面不会马上就体现出来。VM直接调用定义好的VELOCITY-TOOLS,这点我是最喜欢,非常方便, 就是有点不爽的,那个VELOCITY的在ECLIPSE中的插件没有自动提示定义的TOOLS的方法的功能(希望以后能够加强,不然每次调用一个方法,还要来回看拼写对否)
0 请登录后投票
   发表时间:2007-08-30  
myy 写道
支持 sg552 ,要用模板,jsp 就是最好模板。


换来换去,还是JSP这种全能型选手比较不错。
0 请登录后投票
   发表时间:2007-08-30  
myy 写道
支持 sg552 ,要用模板,jsp 就是最好模板。


换来换去,还是JSP这种全能型选手比较不错。
0 请登录后投票
   发表时间:2007-09-11  
引用
ray_linn     2007-05-18 08:49
velocity没有macro,这点比freemarker差多了,而且才是二者差别最显著的地方。

我昏,这玩笑开大了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics