`
watanoeye
  • 浏览: 19398 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

freemarker的优点-个人观点

阅读更多
taglib、freemarker、jsf、Velocity 偶都用过,最后还是觉得frremarker用着最顺心,下面我就说说个人比较喜欢的优点:
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的问题跟踪系统里找找,我附上了源码的.

分享到:
评论
10 楼 starfeng 2009-06-30  
一招致命....

freemarker没有好的debug工具.就凭这点,就得把它放弃了.
9 楼 香克斯 2009-06-30  
嗯,配置问题
8 楼 duooluu 2009-06-27  
netfork 写道

使用FreeMarker有一个非常不好的地方就是id的处理,数字型的,一旦超过3位,一定要使用 c 函数转一下,否则就会带上逗号分隔,如:38,383,838。

看一下freemarker的Configurable源码你就知道了,设置一下数值类型的格式
在struts2中在freemarker.properties中指定
number_format=#
7 楼 g81997842 2009-06-27  
我最喜欢的地方,就是他报错的位置非常准确,呵呵!
6 楼 littleJava 2009-06-26  
我也是在jboss下的插件,貌似没有自动代码补全的功能
5 楼 netfork 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里写代码的度也不好把握。
4 楼 jindw 2009-04-10  
删除掉..
写错了
3 楼 netfork 2009-04-10  
下载了freemarker的插件,看起来比官网推荐的好。
用用试试看,谢谢楼主推荐的好插件!
2 楼 jindw 2009-04-10  
我对FreeMarker最大的好感还在他可以直接输出表达式,还可以进行简单运算。相比velocity,这点改进太好了。
楼主有空能否对Lite XML的语法提提建议呢?
1 楼 ray_linn 2008-10-28  
PS:

我用Freemarker的宏反复迭代出无限层菜单--(其实还是受你内存和屏幕大小的限制),那个代码叫干净啊。

相关推荐

    freemarker-2.3.31-API文档-中文版.zip

    赠送jar包:freemarker-2.3.31.jar; 赠送原API文档:freemarker-2.3.31-javadoc.jar; 赠送源代码:freemarker-2.3.31-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.31.pom; 包含翻译后的API文档:...

    freemarker-2.3.30-API文档-中文版.zip

    赠送jar包:freemarker-2.3.30.jar; 赠送原API文档:freemarker-2.3.30-javadoc.jar; 赠送源代码:freemarker-2.3.30-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.30.pom; 包含翻译后的API文档:...

    freemarker-2.3.30-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.30.jar; 赠送原API文档:freemarker-2.3.30-javadoc.jar; 赠送源代码:freemarker-2.3.30-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.30.pom; 包含翻译后的API文档:...

    FreeMarkerIDE-1.0.0.GA.zip

    FreeMarkerIDE-1.0.0.GA.zip是一款专为FreeMarker设计的Eclipse插件,旨在提升开发人员构建和管理FreeMarker应用的效率。FreeMarker是一个强大的模板引擎,广泛应用于Java环境中,用于生成动态HTML或其他格式的文本...

    freemarker.jar

    camel-freemarker-1.6.4.jar, camel-freemarker-2.8.1.jar, com.springsource.freemarker-2.3.15.jar, com.springsource.freemarker-sources-2.3.15.jar, freemarker-1.4.1.jar, freemarker-2-3-18.jar, freemarker-...

    JavaEE源代码 freemarker-2.3.8

    JavaEE源代码 freemarker-2.3.8JavaEE源代码 freemarker-2.3.8JavaEE源代码 freemarker-2.3.8JavaEE源代码 freemarker-2.3.8JavaEE源代码 freemarker-2.3.8JavaEE源代码 freemarker-2.3.8JavaEE源代码 freemarker-...

    freemarker-ide-0.9.14

    `freemarker-ide-0.9.14` 是一个针对Freemarker模板语言的集成开发环境插件,旨在提升在MyEclipse中的开发效率和体验。 这个插件版本为0.9.14,可能包含了对Freemarker语法的高亮显示、代码自动完成、错误检查、...

    freemarker-2.3.23-API文档-中文版.zip

    赠送jar包:freemarker-2.3.23.jar; 赠送原API文档:freemarker-2.3.23-javadoc.jar; 赠送源代码:freemarker-2.3.23-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.23.pom; 包含翻译后的API文档:...

    freemarker-2.3.22

    在这个"freemarker-2.3.22"的压缩包中,包含了Freemarker 2.3.22版本的相关资源,有助于我们深入了解和使用这个库。 首先,`README.txt`通常包含项目的基本信息、安装指南和快速入门等内容。在这个版本中,它可能...

    freemarker-2.3.28.jar

    这个"freemarker-2.3.28.jar"是Freemarker库的一个具体版本,版本号为2.3.28,它是Java的一个可执行的JAR(Java Archive)文件,用于在Eclipse集成开发环境中作为插件使用。 在Freemarker的2.3.28版本中,我们可以...

    freemarker-ide-0.9.14.rar

    本压缩包"freemarker-ide-0.9.14.rar"提供的是一个针对IDE的Freemarker插件,特别适用于MyEclipse 6.5版本。 该插件名为"Hudson Freemarker IDE",版本为0.9.14,它增强了MyEclipse对Freemarker模板语言的支持。在...

    apache-freemarker-2.3.26-incubating-bin.tar.gz

    这个"apache-freemarker-2.3.26-incubating-bin.tar.gz"文件是Apache FreeMarker的一个特定版本,即2.3.26,处于孵化器阶段(incubating)。它包含了FreeMarker库的二进制文件和相关的文档,为开发者提供了完整的...

    freemarker-2.3.20-API文档-中文版.zip

    赠送jar包:freemarker-2.3.20.jar; 赠送原API文档:freemarker-2.3.20-javadoc.jar; 赠送源代码:freemarker-2.3.20-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.20.pom; 包含翻译后的API文档:...

    ssm整合freemarker---Demo

    在本Demo中,我们将深入探讨如何将FreeMarker模板引擎整合进SSM框架,以及PageHelper分页插件的使用。 首先,让我们来了解一下SSM框架的核心组件: 1. **Spring**:这是一个全面的Java应用框架,提供依赖注入(DI...

    freemarker-2.3.23-中文手册.zip

    这个“freemarker-2.3.23-中文手册.zip”包含了Freemarker 2.3.23版本的详尽中文文档,对于学习和掌握Freemarker的使用非常有帮助。 在Freemarker 2.3.23版中,我们首先会接触到它的核心概念,包括模板(Template)...

    freemarker-2.3.23jar

    `freemarker-2.3.23.jar`是Freemarker库的一个版本,发布于2.3.23,这个版本可能包含了对早期版本的一些改进、新功能或bug修复。 Freemarker的核心概念是模板语言,它是一种声明式的编程方式,允许开发者编写不包含...

    freemarker-2.3.20-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.20.jar; 赠送原API文档:freemarker-2.3.20-javadoc.jar; 赠送源代码:freemarker-2.3.20-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.20.pom; 包含翻译后的API文档:...

    freemarker-2.3.23-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.23.jar; 赠送原API文档:freemarker-2.3.23-javadoc.jar; 赠送源代码:freemarker-2.3.23-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.23.pom; 包含翻译后的API文档:...

    freemarker-2.3.31-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.31.jar; 赠送原API文档:freemarker-2.3.31-javadoc.jar; 赠送源代码:freemarker-2.3.31-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.31.pom; 包含翻译后的API文档:...

Global site tag (gtag.js) - Google Analytics