让Nutz支持最快的模板引擎Smarty4j
Smarty4j是一个开源的模板引擎。没错,它就是著名的php模板引擎之Java移植版。
它特点就是将模板文件或者字符串编译成java类直接执行,所以效率比一般的模板解释的方式处理要快。它发展较晚,所以没有 velocity、FreeMarker 有名,人气也比 php 版本的模板引擎差好多。
但是它很快!
本着怀疑一切的态度,我自己进行了实测。在渲染1000遍一个简单的页面时(只引入几种简单的数据类型), Smarty4j 耗时 16 毫秒,velocity 耗时 63 毫秒,FreeMarker 则用了 109 毫秒。渲染5000遍时,Smarty4j 耗时 172 毫秒,velocity 耗时 328 毫秒,FreeMarker 则用了 390 毫秒。(以上测试均为多次测试后取的平均值)
复杂页面耗时相差更大。所以把项目里的 velocity 或 FreeMarker 换成 Smarty4j 可以使你的应用提速不少。
已经有网友将 Smarty4j 提供了插件集成到 struts2 中了。那么能不能把它集成到国产的小巧的 Nutz MVC 框架中呢?
翻看了 Nutz 的用户手册后发现这是件非常容易的事情。
下面我们就开始吧:
1、首先要实现视图适配器
非常简单:
好了,完成!
那么具体怎么用呢?
首先在主模块上声明使用 Smarty4j 适配器
6 楼 zozoh 2011-04-20 主要是要从容器中把 JSP 剥离,比较麻烦。
一个独立得模板引擎,不需要 ServerRequest 等等,起码,测试得时候方便点 7 楼 feiyan35488 2011-04-20 不知道能不能和tiles活sitemesh相比,模版是一方面,布局也是一方面 8 楼 superhanliu 2011-04-20 不错,作者研究的很深入。回头也要学习下这个smart4j 9 楼 zozoh 2011-04-20 feiyan35488 写道不知道能不能和tiles活sitemesh相比,模版是一方面,布局也是一方面
......... 有区别吗大哥? 都是弄堆 HTML ,然后互相引入一下而已 ........