锁定老帖子 主题:freemarker的优点-个人观点
精华帖 (0) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-28
1.freemarker是一个干净轻量的模板引擎,源代码结构也很清晰. 你可以直接写一个java main方法来调用它,我的代码生成器就是这么做的. 2.freemarker写出来的页面一般都是xml格式友好的,也就是说你可以写出很规范的xhtml,而且还可以直接使用一些xml的代码格式化工具直接美化.而且很容易发现其中缺少或者嵌套错误的tag 3. 个人觉得freemarker和taglib,jsf至少在使用层面上很像,但是freemarker的macro容易写,几行代码就搞定了,taglib和jsf需要写一堆java文件和tld文件,繁琐得很 4.freemarker不能直接调用java对象的method. 这点有些人认为这是个缺点,但是我不这样认为. 个人觉得对于一个view层的东西来说,你要做的就是把view展现好就行了,不要再view中调用业务方法. 以前在公司做产品和后来做项目时就一再和手下的coder强调这点,但是因为种种原因,大家都还是会偷懒,直接在view中调用.用了fm后就不一样了,现在你想在view中调用业务方法,那么你需要绕n个圈才能做到,还不如直接按照标准的mvc来做. 5.freemarker内置了很多web编程中很常用的方法. 例如js_string ,html_string, ${lastUpdated?string.short}, ${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")} 这些东西虽然都很小,但是胜在常用啊,而且用起来很方便 6. eclipse的插件很好用,可以代码提示自动完成. 当然现在只有jboss tools下的那个插件.不过那个插件开发基本停止了,而且维护人员特别官僚,我给他们报了好几个bug,而且还提供了对应的修改代码,结果他们非要我给他们提供patch文件,而且还要写对应的单元测试代码. 偶滴神啊,我只是写web的,eclipse的那套东西实在是不熟悉啊. 7. fm的macro的参数可以设置缺省值, 用起来很方便. 总之,我个人觉得fm还是大大提高了我的工作效率,我们团队的人用了都说很不错.只是好像现在用fm的人太少了,这个社区实在是太冷清了. 附件是我自己修改的freemarker插件,修改了一些小bug,喜欢的就下载用用,想了解详情的可以去jboss的问题跟踪系统里找找,我附上了源码的. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-28
PS:
我用Freemarker的宏反复迭代出无限层菜单--(其实还是受你内存和屏幕大小的限制),那个代码叫干净啊。 |
|
返回顶楼 | |
发表时间:2009-04-10
最后修改:2009-04-10
我对FreeMarker最大的好感还在他可以直接输出表达式,还可以进行简单运算。相比velocity,这点改进太好了。
楼主有空能否对Lite XML的语法提提建议呢? |
|
返回顶楼 | |
发表时间:2009-04-10
下载了freemarker的插件,看起来比官网推荐的好。
用用试试看,谢谢楼主推荐的好插件! |
|
返回顶楼 | |
发表时间:2009-04-10
最后修改:2009-04-10
删除掉..
写错了 |
|
返回顶楼 | |
发表时间:2009-04-10
用FreeMarker有写脚本的感觉,改点什么一刷新就出来了,自身带的函数、表达式及指令非常周全,实在不满足需要时,只要写个macro就OK了。
我现在还把一些常用的,又不值得放到数据库中的分类信息用assign定义到util.ftl中了,可以很方便的使用。 比如: <#-- 字形 --> <#assign fontstyleMap={ "0":"常规", "1":"斜体", "2":"粗体", "4":"下划线", "8":"粗斜体" }> 使用FreeMarker有一个非常不好的地方就是id的处理,数字型的,一旦超过3位,一定要使用 c 函数转一下,否则就会带上逗号分隔,如:38,383,838。吃了不少亏 用jsp有时候比较迷茫是自己写个tag整形,还是放到Action里处理好。还有就是在jsp里写代码的度也不好把握。 |
|
返回顶楼 | |
发表时间:2009-06-26
我也是在jboss下的插件,貌似没有自动代码补全的功能
|
|
返回顶楼 | |
发表时间:2009-06-27
我最喜欢的地方,就是他报错的位置非常准确,呵呵!
|
|
返回顶楼 | |
发表时间:2009-06-27
netfork 写道 使用FreeMarker有一个非常不好的地方就是id的处理,数字型的,一旦超过3位,一定要使用 c 函数转一下,否则就会带上逗号分隔,如:38,383,838。 看一下freemarker的Configurable源码你就知道了,设置一下数值类型的格式 在struts2中在freemarker.properties中指定 number_format=# |
|
返回顶楼 | |
发表时间:2009-06-30
嗯,配置问题
|
|
返回顶楼 | |