阅读更多

6顶
1踩

开源软件

原创新闻 开源 Java 模板引擎 HTTL 1.0.0 发布

2012-10-30 14:43 by 正式记者 javatar 评论(8) 有9145人浏览
HTTL是一个适用于HTML输出的开源JAVA模板引擎,可用于替代JSP页面,它的指令类似于Velocity。

HTTL采用类似于JSP的原理,将模板编译成Java字节码运行,但比JSP的EL更进一步,使用强类型推导,减少运行期反射和转型,更加快速.

项目首页:http://httl.github.com

源码地址:https://github.com/httl/httl

下载地址:https://github.com/httl/httl/downloads

变更日志:

修复问题:

1. 解决foreach和if/else联合使用时状态错乱问题。
2. 解决getIsXxx属性解析出错问题。
3. 解决文件加载未使用指定编码问题。
4. 解决部分文件流打开后未关闭问题。
5. 解决迭代map出错的问题,以及Map数据的类型推断问题。

新功能:

6. 支持单独的macro文件定义宏方法,通过import.macros配置加载。
7. 增加gt,ge,lt,le符号,在属性语法时避免表达式出现HTML标签符。

兼容优化:

8. 静态方法不走engine.getFunction()查找实例,直接调用类的静态方法。
9. 将所有配置的获取改为setter注入,比如:setInputEncoding(String)。
10. 编译Macro时直接注入到模板属性中,并增加template.getMacros()方法。
11. 渲染过程不改变传入Map的状态,保证模板渲染的无副作用性,以及多次渲染的幂等性。
12. 优化Profiler性能分析发现的ArrayIterator引起的性能损耗问题。
13. 将文本内容不编译到字节码中,改为从缓存中获取,防止内存Perm区过大,并提供source.in.class和text.in.class开关项。

不兼容优化:(注:从旧版本升级到1.0.0请注意不兼容优化项)

14. 将define指令名改成var,以免和velocity的define指令理解混淆,影响所有旧模板,用户可全文替换。
15. 去掉block指令,用#set(xxx = xxxmacro())代替,影响使用block的模板。
16. 将com.googlecode.httl改成httl,影响API调用,重新Ctrl+Shift+O导入一下包名即可,类名没变。
17. 将com.googlecode.httl.support改成httl.spi,影响httl.properties中扩展点的配置,使用缺省配置值的,建议不要配到用户配置中。
18. 将filters配置项改成了value.filters,与text.filters对应用,影响httl.properties中filter扩展点的配置。
19. 将functions配置项成了import.methods,与import.packages以及import.macros对应,方便理解。
20. 加号数字优先,即只要有一方为数字即换数字计算,如:"2" + 3,输出:5,而不是:23,如果要字符相拼双方都要为字符:"2" + 3.toString
来自: httl
6
1
评论 共 8 条 请登录后发表评论
8 楼 lovejing 2012-10-31 11:35
支持 up
7 楼 lection.yu 2012-10-31 10:48
请问httl是否支持自定义指令,既然是编译成字节码运行,如果模板加载数量过多,然后很多是过期模板,是否有释放Perm空间的方式?
6 楼 tufly 2012-10-31 10:08
这个一直在留意,辛苦了。
5 楼 javatar 2012-10-31 08:32
tag13346 写道
不知道和freemarker比有什么特别之处


HTTL主要追求的是性能,像JSP一样编译模板为字节码运行,这也是HTTL的核心工作,持之以恒的优化性能。

语法方面,HTTL追求的是KISS,尽量简洁。指令模仿的是Velocity,指令只要不影响基本功能完备,能少尽量少,像Velocity中没怎么用的stop或可用macro替代的define等指令统统砍掉,include, parse, evaluate等指令全部降级为表达式方法。

FreeMarker追求的超多功能,但也就相对复杂,其实很多功能,都没必要在语法层面支持。
4 楼 tag13346 2012-10-30 22:43
不知道和freemarker比有什么特别之处
3 楼 javatar 2012-10-30 17:46
string2020 写道
重造轮子.


这个轮子造了很久了,以前叫commontemplate:
http://oskpi.com/commontemplate/zh/index.html

去年的时候,优化了一下性能,改成了httl:
http://www.iteye.com/topic/1114669

不知怎么的,最近问HTTL相关问题的人变多了,还有人发来修复问题的代码,就周未抽了点时间,改了改,顺便发个版本,希望能对得起帮忙改代码的用户。
2 楼 string2020 2012-10-30 17:09
重造轮子.
1 楼 zhongmin2012 2012-10-30 16:48
没使用过,待观察,待大家评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • httl:超文本模板语言和引擎

    超文本模板语言( HTTL )和引擎 文献资料网页:|示例:|用户指南语法:|配置:|开发指南整合:英文|中文设计:英文|中文帮助(常见问题/团队成员):英语|中文 下载https://github.com/httl/httl/tags 或克隆项目...

  • httl文件如何引入Java类,Java模板引擎 HTTL

    软件介绍HTTL(Hyper-Text Template Language)是一个高性能的开源JAVA模板引擎,适用于动态HTML页面输出,可替代JSP页面,指令和Velocity相似。简洁友好的模板语法语法尽可能符合HTML和JAVA开发者的直觉,指令和老牌...

  • java httl_Java模板引擎 HTTL

    HTTL(Hyper-Text Template Language)是一个高性能的开源JAVA模板引擎,适用于动态HTML页面输出,可替代JSP页面,指令和Velocity相似。简洁友好的模板语法语法尽可能符合HTML和JAVA开发者的直觉,指令和老牌的...

  • httl开源JAVA模板引擎,动态HTML页面输出

    HTTL(Hyper-Text Template Language)是一个适用于HTML输出的开源JAVA模板引擎,适用于动态HTML页面输出,可用于替代JSP页面,它的指令类似于Velocity。 HTTL采用类似于JSP的原理,将模板编译成Java字节码运行,但...

  • Java开源模板引擎

    Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员...

  • HTTL模板引擎

    HTTL模板引擎源码 HTTL(Hyper-Text Template Language)是一个高性能的JAVA开源模板引擎,适用于动态HTML页面输出,可替代JSP页面,它的指令和Velocity相似。

  • 关于httl开源Java模板的使用心得

    HTTL(Hyper-Text Template Language) 是一个高性能的开源JAVA模板引擎, 适用于动态HTML页面输出, 可替代JSP页面, 指令和Velocity相似。 2.模板语法 HTTL语法尽可能符合HTML和JAVA开发者的直觉,指令和老牌的...

  • 教你使用PHP实现一个轻量级HTML模板引擎

    为了提高开发效率和代码可维护性,使用模板引擎是一个非常普遍的方案。像我们经常用到的smarty就是一个非常出名的项目,实际上它的核心原理并不复杂。今天我们就来实现一个自己的模板引擎,揭开这种技术的神秘面纱。...

  • HTTL发布1.0.0版本

    HTTL是我去年写的一个模板引擎,不知怎么的,最近问HTTL相关问题的人特别多,还有人发来修复问题的代码,周未抽了点时间,改了改,顺便发个版本,希望能对得起帮忙改代码的用户,感谢你们。 项目已迁移到GitHub上...

  • java httl_HTTL

    概述HTTL (Hyper-Text Template Language)是一个高性能的开源JAVA模板引擎,适用于动态HTML页面输出,可替代JSP页面,指令和Velocity相似。简洁友好的模板语法HTTL语法尽可能符合HTML和JAVA开发者的直觉,指令和老牌...

  • Spring boot集成Httl模板引擎

    Spring boot 1.5.3集成Httl模板引擎 不能使用@Restcontroller 导致返回直接json化 没有转发到httl引擎 再httl.properties文件中直接指定loaders

  • 从HTTL模板引擎看软件设计原则

    HTTL (Hyper-Text Template Language) 是一个高性能的开源JAVA模板引擎, 适用于动态HTML页面输出, 可替代JSP页面, 指令和Velocity相似。作者是阿里巴巴工程师梁飞,本文是在拜读了HTTL的设计原则之后提炼出的部分...

  • java错误加载模板文件_HTTL模板getTemplate()报错java.lang.IllegalStateException: Not found template /***.httl in C...

    使用HTTL的Engine方法getTemplate 报模板没有没到Engine engine = Engine.getEngine("conf/httl.properties");Template template =engine.getTemplate("pullFail.httl")// 这里报错java.lang.IllegalStateException:...

  • tiny html模板引擎,剖析 “‘最好的模板引擎’Beetl剖析及与Tiny模板引擎对比”...

    http://blog.csdn.net/cndes/art ... 88771这有一篇文章,说是剖析beetl模板引擎,并与同为国内的tiny模板引擎作对比(如下简称“剖析beetl”),其剖析过程公正,但结论却不正确(文中暗示的结论,而不是文章最后一段...

  • 模板引擎 Thymeleaf

    ☀Java项目-表白墙(前后端分离+数据库)已开源☀ 前端项目—待办事项(HTML+CSS+JavaScript实现) Servlet :Servlet API(HttpServlet Request Response) Servlet部署教程(基于Tomcat) Tomcat :Tomcat...

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

  • 基于java的驾校收支管理可视化平台的开题报告.docx

    基于java的驾校收支管理可视化平台的开题报告

  • 原木5秒数据20241120.7z

    时间序列 原木 间隔5秒钟 20241120

  • 毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

    毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

Global site tag (gtag.js) - Google Analytics