HTTL(Hyper-Text Template Language)是一个高性能的开源JAVA模板引擎,适用于动态HTML页面输出,可替代JSP页面,指令和Velocity相似。
语法尽可能符合HTML和JAVA开发者的直觉,指令和老牌的Velocity类似,但改进了Velocity中不符合直觉的地方。 只保留最基本的条件迭代控制指令,渲染过程不允许修改原始数据,防止模板带过多业务逻辑。默认使用HTML注释语法,避免干扰原生HTML页面。
<html> <body> <!--#if(books)--> <table> <!--#for(Book book : books)--> <tr> <td>${book.title}</td> </tr> <!--#end--> </table> <!--#end--> </body> </html>
改进Velocity不符合直觉的地方:
详细语法,以及Velocity对比,请参见:语法 & 对比
将模板编译成JAVA字节码运行,并使用强类型推导,减少运行期反射和转型, 渲染速度接近Java硬编码输出,比Velocity等其它模板引擎快一个数量级。 比JSP也快,因为JSP只有Scriptlet是编译的,Tag和EL是解释执行的,而HTTL是全编译的。
测试用例和环境,以及优化策略,请参见:性能 & 优化
模板自描述,在模板内声明入参变量类型,并基于入参类型推导模板内所有变量类型,使IDE能方便的实现变量方法补全提示, 对开发过程友好。出错信息精确定位行列,并显示出错位置前后相关内容。采用微核+插件体系,所有环节均可扩展,方便集成和二次开发。
严格确保质量,请放心使用,HTTL在发布前已做:
并全部通过,详细设计与质量分析,请参见:设计 & 质量