`
javatar
  • 浏览: 1680324 次
  • 性别: 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模板引擎

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

    httl-1.0.11 jar包

    比较好的视图层模板引擎

    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)

    NULL 博文链接:https://dada-fangfang.iteye.com/blog/1622934

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

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

    html颜色库

    可以毫不夸张的说这是所有颜色的代码值库,在这里你可以找到所有你想要的的颜色的代码

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

    这是一套非常有用的文件的上传与下载技术,不会的可以去下载去看一下哦呵呵

    2018年m301H盒子修复教程

    2018年m301H盒子修复教程,图片显示修复的过程,不需要ttl线刷,只需按照教程即可恢复固件,救砖,黑屏。

    计算机多媒体试题.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______感受光信号,使转变为电信号,再经模/数转换变成数字...

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

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

    基于J2EE的员工年假管理系统

    系统框架采用Sping、Struts2和MyBatis,数据库为MySQL,服务器选用tomcat,页面采用httl,并结合JavaScript、jQuery和easyUI插件进行页面效果渲染。系统由登录/退出模块、修改个人密码模块、个人年假信息模块、员工...

    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...

    小程序豆瓣视频实例

    经测试可以运行,效果不错,适合初学者学习。

    5.19ex1_4.cpp

    5.19ex1_4.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

Global site tag (gtag.js) - Google Analytics