论坛首页 Java企业应用论坛

Velocity vs FreeMarker

浏览 29682 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-07  
buaawhl强啊,多努力,下个项目评估时用你的fastm试试
0 请登录后投票
   发表时间:2005-04-07  
andyyehoo 写道
buaawhl强啊,多努力,下个项目评估时用你的fastm试试


多谢.:-)
我现在为 fastm 供了一个简单的WebWork 的 View Adapter -- FastmResult.  能够像velocity, freemarker那样和WebWork结合使用。
0 请登录后投票
   发表时间:2005-04-15  
Velocity快?
和什么比快呀?
0 请登录后投票
   发表时间:2005-04-15  
andyyehoo 写道
velocity可以做类似

$request.session.removeAttribute("varName")

的操作,而freemarker不能

速度方面没有严谨的解释,不过看到了几处文章这样写的


不能吗? 什么错误?
0 请登录后投票
   发表时间:2005-04-26  
如果真正做过项目的话,我估计你会选Velocity,因为简单,资料多,成功案例多
Freemarker我现在也在研究,他可以替代Velocity的部分往往是不常用的部分
而且不支持Jdk的buidin
0 请登录后投票
   发表时间:2005-04-26  
FreeMarker在明明可以使用xml语法的时候,偏偏自定义自己的tag格式。实在是有点古怪。执行能力,抽象能力和集成能力等方面考虑。
fastm太过简单了,不支持抽象(有include吗)
0 请登录后投票
   发表时间:2005-04-26  
canonical 写道

fastm太过简单了,不支持抽象(有include吗)


fastm不支持include。
基本格式和 php lib 一样。就是phpbb采取的这种。
但是 fastm 在这个基础上更进了一步。
支持 Template DOM + POJO DOM。

include这种需求,在XML DOM里面有两种方法。
一种是XSL操作,一种是Java Code操作,可以动态直接替换任何Node。而不是静态的include。

fastm也是如此。可以有两种方式 动态include。
1. java code 替换 Template DOM中的任何Node。
2. java code 替换 POJO 中的任何Node。
0 请登录后投票
   发表时间:2005-04-26  
fastm在java代码中作替换不是什么好主意,因为include是界面开发人员完全能够控制的。我也设计了一种模板技术,使用xml语法。
http://canonical.blogdriver.com/canonical/600295.html
0 请登录后投票
   发表时间:2005-04-26  
canonical 写道
fastm在java代码中作替换不是什么好主意,因为include是界面开发人员完全能够控制的。我也设计了一种模板技术,使用xml语法。
http://canonical.blogdriver.com/canonical/600295.html


你的Blog 我早就拜读过了,也包括这篇。也一直在关注。:-)
TPL是一个相当强大的Script语言。

类似的用 Tag 作 Script 语句的Template Script还有,
Tapestry, Wicket (HTML Tag),  Tag Lib (XML Tag),  Python ZOPE的Template Script 等。
还看到这个产品。http://www.htok.net/we/servlet/SuperFace/help/index.html

TPL看起来,要比这些的功能还要强大一些,甚至可以引入Java Object/Class, 也可以自定义Java Class。

TPL 和fastm走的路,正好相反。
TPL是除了引入Logic之外,尽量把Java的特性向HTML Template里面引入。还能够引入XSL等Transformer。
Fastm是尽量把Logic 从Template中驱逐出去。让Template 本身变得干净,接近于Pure HTML DOM 一般干净。用户可以象操作XML DOM一样操作Fastm Template DOM。
关于include,界面设计人员也可以用配置的方法指定。比如,这是一块菜单位置。就用
<!-- BEGIN DYNAMIC: include:menu.html -->
<!-- END DYNAMIC: include:menu.html -->
或者{include:menu.html}
标志出来。
Menu.html是另一个HTML。程序员可以写一段简单的代码,把menu.html装配到那个位置。(如果用Groovy, Jython, Jaskell等,则无需编译)
界面设计人员不用关心如何实现。和直接写 <jsp:include="menu.jsp"/> 效果一样。

TPL, JSPlet等,是强大的 拉 技术。
而fastm则是纯粹的推技术。Template本身一点主动性都没有,完全是被动的资源。

我对Template & Script 的看法是这样。
HTML里面的Script逻辑,总是不如 Java Code里面的逻辑 容易管理。
Java Code天生就是做逻辑的,是一个语义清晰的面向对象的成熟语言。结构化,层次化。Java 里面可以import 另一个Java 类,可以调用另一个类的 函数。开发、编译、调试工具也比较成熟。
所以,我倾向于把逻辑尽量搬到Java Code里面,而不是相反。
0 请登录后投票
   发表时间:2005-06-02  
buaawhl 写道
TPL, JSPlet等,是强大的 拉 技术。
而fastm则是纯粹的推技术。Template本身一点主动性都没有,完全是被动的资源。

我对Template & Script 的看法是这样。
HTML里面的Script逻辑,总是不如 Java Code里面的逻辑 容易管理。
Java Code天生就是做逻辑的,是一个语义清晰的面向对象的成熟语言。结构化,层次化。Java 里面可以import 另一个Java 类,可以调用另一个类的 函数。开发、编译、调试工具也比较成熟。
所以,我倾向于把逻辑尽量搬到Java Code里面,而不是相反。


赞同,尽量的把逻辑往类层放,页面会简单,甚至美工都可以参与写页面.对分层开发是很有利的.
而页面逻辑显然在类里更合适,编译期就能发现很多问题.当然页面没了逻辑一定会少了点展示方面的灵活性.
但显然fastm更符合模版语言和mvc的初衷:纯get数据展示;
没有了页面逻辑,虽然会丧失一点灵活性,但从规范和开发维护角度,还是值得采用的.

至于include子页面,我看也是打乱页面可视化开发一个因素,页面开发工具强大如Dreamweaver也不能展示子页面的;而且include也导致了页面间的偶合,我感觉模版语言应尽量向纯html靠拢,没必要在界面的制作上耍技巧.
0 请登录后投票
论坛首页 Java企业应用版

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