偶然机会看到了Httl模板引擎。HTTL是一个高性能的开源模板引擎, 适用于动态页面输出, 可替代页面, 指令和相似。
HTTL的优点如下:
1)速度快,速度接近Java硬编码输出。2)指令简单,HTTL只有 #set, #if, #else, #for, #break, #macro 六个指令,以及输出占位和注释转义,保持最小指令集。3)可扩展性很强,自定义宏,使用java实现部分方法。4)默认使用HTML注释语法,避免干扰原生HTML页面,方便美工和程序开发者分工。5)HTTL采用微核+插件体系,所有环节均可扩展或替换,方便集成和二次开发。
HTTL的主要开发者梁飞也是阿里巴巴的dubbo的主要设计者,HTTL代码质量很高。
HTTL与JFinal的整合代码已经提交给梁飞,梁飞已整合进HTTL中。需要集成的请移步 http://httl.github.io/zh/ 下载最新的1.10版本。
说说使用吧。
配置web.xml
httl.spi.loaders.ServletLoader httl.properties /WEB-INF/httl.properties
修改JFinal控制文件。
@Override public void configConstant(Constants me) { //加载数据库配置文件 loadPropertyFile("database.properties"); //设定采用httl模板引擎 me.setMainRenderFactory(new HttlRenderFactory()); me.setFlashManager(new EhCacheFlashManager("flashCache")); //设定为开发者模式 me.setDevMode(false); }将httl.properties放在WEB-INF目录下。
配置如下:
import.packages+=com.lh.openapi.manager.modeltemplate.directory=/WEB-INF/templatestemplate.suffix=.htmlinput.encoding=UTF-8output.encoding=UTF-8reloadable=trueprecompiled=truevalue.filter=nulllocalized=false主要要导入一些包,还有就是模板的目录。
在Controller中的使用:
/** * 显示所有列表 */ public void index(){ setAttr("schools", School.dao.getAllSchools()); render("index.html"); }
其他HTTL使用参见:
打包好的插件JFinalHttlRender-1.0.jar下载地址: