`
javatar
  • 浏览: 1700509 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

HTTL发布1.0.0版本

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

项目已迁移到GitHub上: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
分享到:
评论
10 楼 q6844296 2014-12-05  
楼主,求一份生成html碎片文件的demo!最好还是最一个API,谢谢。楼主!
9 楼 WilliamWai 2014-11-20  
梁飞,去年我们在网上对比了各种模板引擎的性能,由于网上很多人对httl的评价挺好的,所以我们采用了httl进行我们电子商务网站平台开发,但是目前我们发现httl第一次加载的时候很慢甚至会死机,如果在应用服务器启动的时候一次性加载所有的httl那么加载的时间很长甚至出现错误。请问你有什么好的改进与建议吗?(我们的应用服务是jboss)请求帮助。
8 楼 javatar 2012-12-28  
aduan668 写道
想知道跟beetl相比哪个性能好点?看beetl比较灵活

你可以执行以下命令运行httl-benchmark的测试:
git clone https://github.com/httl/httl-benchmark.git
cd httl-benchmark
mvn test -Dtest=httl.test.PerformanceTest -Dcount=10000
7 楼 javatar 2012-12-28  
aduan668 写道
想知道跟beetl相比哪个性能好点?看beetl比较灵活


httl-bechmark中有beetl的对比,httl比beetl快一倍以上。

个人不太喜欢复杂的模板,所以HTTL一直在尽可能做减法,指令越少越好。
6 楼 aduan668 2012-12-27  
想知道跟beetl相比哪个性能好点?看beetl比较灵活
5 楼 hunaifei2008 2012-12-12  
正在学习中
4 楼 javatar 2012-11-19  
jxjyou 写道
楼主,这个是编译执行的,那岂不是更改了 html 上的 东西 都要重新编译发布才行?

是运行时动态生成字节码的,不需要工程上的编译,可以热加载。
3 楼 jxjyou 2012-11-16  
楼主,这个是编译执行的,那岂不是更改了 html 上的 东西 都要重新编译发布才行?
2 楼 lqixv 2012-11-12  
1 楼 airfeys 2012-11-03  
支持,挺好用。

相关推荐

    httl-1.0.11 jar包

    `httl-1.0.11.jar` 包是HTTL库的版本1.0.11,这个版本包含了HTTL引擎运行所需的所有类和资源,用于在Java应用中集成并使用HTTL模板。 1. **HTTL的核心特性** - **快速高效**:HTTL设计时考虑了性能,它的编译模型...

    HTTL模板引擎

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

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

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

    基于maven管理的 spring4 0 3+struts2 2 3 16 1+hibernate4 3 4 Final+httl1 0 11 的简单留言本

    自己学习用的,基本上采用都是最新版的程序,jre7编译 不建议直接导入,自己新建maven项目,然后一步步的导入文件,这样有利于学习 1分只是象征,如果一分都没有 ...互相学习,互相进步吧!">自己学习用的,基本上采用...

    当前流行的模板引擎效率分析(velocity,freeMarker,Smarty4j,httl)

    本篇文章将对四个流行的Java模板引擎——Velocity、FreeMarker、Smarty4j以及HTTL进行效率分析,旨在探讨它们在处理业务逻辑编译和性能方面的优劣。 1. Velocity: Velocity是Apache软件基金会的一个开源项目,以其...

    魔塔游戏开发素材

    【魔塔游戏开发素材】是一份集合了用于创建魔塔游戏的重要资源,为开发者提供了丰富的素材,便于构建属于自己的魔塔冒险世界。魔塔是一种基于数字逻辑和策略的像素风格游戏,深受玩家喜爱。这份素材可能包括角色图像...

    T4模板使用及CSHTML共5个/第4个

    T4模板使用及CSHTMLT4模板使用及CSHTML

    html颜色库

    HTML颜色库是一个全面的资源,包含了几乎所有的颜色代码值,为网页设计、前端开发以及其他需要颜色编码的应用提供了极大的便利。这个库不仅包含了基本的颜色名称,还涵盖了十六进制(Hex)、RGB、RGBA、HSL以及HSLA...

    文件的上传与下载过滤操作技术(java jsp )

    在IT行业中,文件的上传与下载是Web应用中常见的功能,尤其在企业级系统中更是不可或缺。本技术探讨的是如何使用Java和JSP实现这一功能,同时涉及到了过滤器(Filter)和登录验证的实践。以下将详细介绍这些知识点。...

    2018年m301H盒子修复教程

    提到“c++11”,这并不是与m301H盒子修复直接相关的标签,因为盒子的固件通常基于Linux系统,而C++11是C++编程语言的一个版本,主要用于开发软件。不过,如果m301H盒子的固件或应用程序包含C++11特性,那么理解这些...

    TTL 完美破解固件备份 M301H_3798mv300h TTL 完美破解固件备份 救砖.7z

    标题中的“TTL完美破解固件备份M301H_3798mv300h TTL完美破解固件备份 救砖.7z”指的是一个针对特定型号(M301H)设备的固件备份文件集,其中包含了多个关键的系统组件。这个7z压缩包显然用于备份或恢复设备的固件,...

    计算机多媒体试题.docx

    考试时间:120分钟 一、单项选择题(每题1分,共50分) MP3代表的含义 A、一种视频格式 B、一种音频格式 C、一种网络协议 D、软件的名称 超文本标记语言是指 A、 WWW B、 HTTL C、 HTML D、 VRML CD-ROM是指 A、...

    多媒体计算机技术试题及答案.doc

    超文本标记语言是指 B A、 WWW B、 HTTL C、 HTML D、 VRML 3. CD-ROM是指 B A、数字音频 B、只读存储光盘 C、交互光盘 D、可写光盘 4. 数码相机是利用__B______感受光信号,使转变为电信号,再经模/数转换变成数字...

    TTL电路.pdf

    包括SN54/74系列,(其中54系列工作温度为-55℃~+125℃,74系列工作温度为0℃~+75℃),低功耗系列简称LTTl,高速系列简称HTTL。 第二代TTL 包括肖特基箝位系列(STTL)和低功耗肖特基系列(LSTTL)。 第三代...

    Head First Servlet JSP(清晰中文版).part4

    如果在HTTL中引入Java,JSP则应运而生 2 Web应用体系结构:高层概述 考试要求 什么是容器,容器能带给你什么? 代码里有什么 命名servlet,使用DD将Servlet映射到URL 故事:Bob构建了一个速配网站(MVC) ...

    Head First Servlet JSP(清晰中文版).part2

    如果在HTTL中引入Java,JSP则应运而生 2 Web应用体系结构:高层概述 考试要求 什么是容器,容器能带给你什么? 代码里有什么 命名servlet,使用DD将Servlet映射到URL 故事:Bob构建了一个速配网站(MVC) ...

    Head First Servlet JSP(清晰中文版).part3

    如果在HTTL中引入Java,JSP则应运而生 2 Web应用体系结构:高层概述 考试要求 什么是容器,容器能带给你什么? 代码里有什么 命名servlet,使用DD将Servlet映射到URL 故事:Bob构建了一个速配网站(MVC) ...

    Head First Servlet JSP(清晰中文版).part1

    如果在HTTL中引入Java,JSP则应运而生 2 Web应用体系结构:高层概述 考试要求 什么是容器,容器能带给你什么? 代码里有什么 命名servlet,使用DD将Servlet映射到URL 故事:Bob构建了一个速配网站(MVC) ...

    TTL电路

    screen.width-333)this.width=screen.width-333" border=0> 第一代TTL包括SN54/74系列,(其中54系列工作温度为-55℃~+125℃,74系列工作温度为0℃~+75℃) ,低功耗系列简称lttl,高速系列简称HTTL。 第二代TTL...

Global site tag (gtag.js) - Google Analytics