阅读更多

6顶
1踩

开源软件

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

2012-10-30 14:43 by 正式记者 javatar 评论(8) 有9212人浏览
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...

  • 基于忆阻神经网络的图像边缘检测的FPGA硬件实现.pdf

    基于忆阻神经网络的图像边缘检测的FPGA硬件实现.pdf

  • MASTG Mobile Application Security Testing Guide 中文版本 | 移动应用安全性与逆向工程技术的全面指南:深入探讨OWASP MASTG v1.7.0

    内容概要:本文深入解读了OWASP MASTG v1.7.0的移动应用安全测试指南,涵盖应用源代码完整性检查、文件存储完整性检查、反编译与逆向工程、权限管理和证书固定等多个方面。文章强调移动应用程序面临的常见威胁及应对措施,并详细介绍反汇编、文件完整性检测、调试技术和证书固定的绕过方法。这些主题旨在帮助安全研究人员深入了解并加强移动应用程序的安全防护。适用人群:从事信息安全和移动应用开发的专业人士,尤其是负责安全测试和审计的工程师。 使用场景及目标:该指南主要应用于移动应用安全性评估、开发和渗透测试等领域。帮助企业和团队识别、防范各类安全隐患,确保移动应用程序的安全性和合规性。其他说明:本文还涉及大量实战技巧和技术细节,如ADB命令、逆向工程工具(radare2、IDA Pro等)的具体应用方法、动态与静态分析工具的选择,为移动安全研究人员提供了详尽的实际操作参考资料。 适合人群:具备一定编程基础,工作1-3年的研发人员。对信息安全领域有兴趣的学习者也可从中受益匪浅。 适用场合及目标:适用于移动应用开发、测试、维护等全流程,特别是关注安全性评估、漏洞挖掘、逆向工程及防御对策的企业和个人开发者。 其他说明:文章内容丰富,覆盖广泛的主题,既包含了理论知识又包含了大量的实用技术,能够满足不同类型用户的需求。无论是希望提升自我技术水平的一般技术人员,还是需要进行专业安全测评的专业人士都可以从此份文档中获益。

  • 基于java+ssm+mysql的图书管理借阅系统 源码+数据库+论文(高分毕设项目).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat

  • 可控电抗器的有限元分析.pdf

    可控电抗器的有限元分析.pdf

Global site tag (gtag.js) - Google Analytics