锁定老帖子 主题:FreeMarker三宗罪!
精华帖 (2) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2005-12-23
robbin 写道 因此使用freemarker作为webwork的view,是没有问题的。但是如果使用freemakrer作为sitemesh的decorator的时候,还是有这个群集复制的问题。 我个人一直是使用freemarker view的,而且也不喜欢sitemesh这样的二次拼装的东西,总觉得有效率上的问题,不如freemarker自己直接生成来的方便。 一般,我会有一个common.ftl,里面定义一个像这样的macro <#macro html title> <html> <head> <title>${title?html}</title> </head> <body> <#nested/> </body> </html> </#macro> 也就是把改封装的封装都给它叻,然后每个页面这样都差不多是这样: <#import "common.ftl" as c> <@c.html title="标题"> 这里是文本内容 </@c.html> 这样,虽然每个文件有这三行代码是固定不变的,但是换来的是页面的“组件”化和页面产生的效率。在我实际项目中,感觉是狠不错的。 |
|
返回顶楼 | |
发表时间:2005-12-23
关注freemarker中。
|
|
返回顶楼 | |
发表时间:2005-12-23
刚有准备学学freemarker的心,就看到了这篇帖子。看来要再比较一下了。
|
|
返回顶楼 | |
发表时间:2005-12-23
FreeMarker在很多方面的确很方便,不过在有些方面也有问题。在View方面,我倒是觉得更加应该注意的是如何把HTML,CSS,JavaScript进行规范化,纯粹讨论FreeMarker的优点和缺点实际上讨论到最后就变成个人喜好问题了。
我一直是用JSTL的,感觉很方便。FreeMarker用了一段以后,实在受不了“第一宗罪”,改回了JSTL,但是也有N多人认为这正是它严谨的表现。 至于它的Session的问题,我不很明白的是为什么它要放到HttpSession里面去,其实倒是可以就这个问题好好讨论讨论。 |
|
返回顶楼 | |
发表时间:2005-12-23
FreeMarker第一宗罪确实很讨厌,也许多用点tag可以避免大量的build-in的使用。
FreeMarker第二宗罪也是个问题,不过很少会碰到这种情况,即使碰到也可以用其他办法绕过。 FreeMarker自带的Servlet确实有第三宗罪的问题,不过直接使用FreeMarkerServlet是一个不好的方式,不建议使用。通常在配合Webwork/Spring MVC的时候,webwork/spring已经分别进行了封装,没有这个问题了。关于和sitemesh搭配的问题,webwork2.2提供了一个FreeMarkerPageFilter,解决了这个问题。 回过头了说说FreeMarker的优点: 1、简单易学易用 2、报错信息准确 3、macro功能强大,实现了页面组件的可重用性 4、不耦合Servlet,可以被打包到jar里面,实现web组件的重用 特别是第四条,如果做软件产品,或者扩展已有软件项目的功能,是非常有用的地方。 我收回我上面的决定,还是将FreeMarker进行到底。 |
|
返回顶楼 | |
发表时间:2005-12-23
hongliang 写道 robbin 写道 因此使用freemarker作为webwork的view,是没有问题的。但是如果使用freemakrer作为sitemesh的decorator的时候,还是有这个群集复制的问题。 我个人一直是使用freemarker view的,而且也不喜欢sitemesh这样的二次拼装的东西,总觉得有效率上的问题,不如freemarker自己直接生成来的方便。 一般,我会有一个common.ftl,里面定义一个像这样的macro <#macro html title> <html> <head> <title>${title?html}</title> </head> <body> <#nested/> </body> </html> </#macro> 也就是把改封装的封装都给它叻,然后每个页面这样都差不多是这样: <#import "common.ftl" as c> <@c.html title="标题"> 这里是文本内容 </@c.html> 这样,虽然每个文件有这三行代码是固定不变的,但是换来的是页面的“组件”化和页面产生的效率。在我实际项目中,感觉是狠不错的。 你还不了解sitemesh,建议了解一下,sitemesh实现的功能远远不是你这个自定义模板可比的。 |
|
返回顶楼 | |
发表时间:2005-12-26
robbin 写道 你还不了解sitemesh,建议了解一下,sitemesh实现的功能远远不是你这个自定义模板可比的。 执行效率如何? |
|
返回顶楼 | |
发表时间:2005-12-26
低
hongliang 写道 robbin 写道 你还不了解sitemesh,建议了解一下,sitemesh实现的功能远远不是你这个自定义模板可比的。 执行效率如何? |
|
返回顶楼 | |
发表时间:2005-12-26
还可以啦,只不过有时会有一些奇怪的小问题
|
|
返回顶楼 | |
发表时间:2005-12-27
chenqj 写道 低
REALLY?? |
|
返回顶楼 | |