浏览 3261 次
锁定老帖子 主题:MeteorTL发布属性语法外套
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-15
http://www.meteortl.org http://meteortl.sourceforge.net <html> <body> <!--标准语法 --> @if{users != null && users.size > 0} <table border="1"> @for{user : users} <tr> <td>@{status.index + 1}</td> <td>@{user.name}</td> <td>@{user.coins}</td> </tr> @end </table> @end <!-- 注释版语法外套 --> <!--@if{users != null && users.size > 0}--> <table border="1"> <!--@for{user : users}--> <tr> <td>@{status.index + 1}</td> <td>@{user.name}</td> <td>@{user.coins}</td> </tr> <!--@end--> </table> <!--@end--> <!-- 属性版语法外套 --> <table m:if="users != null && users.size > 0" border="1"> <tr m:for="user : users"> <td><span m:out="status.index + 1">james</span></td> <td><span m:out="user.name">james</span></td> <td><span m:out="user.coins">2</span></td> </tr> </table> </body> </html> 两版语法外套都是在借鉴了其它模板及框架的基础上实现的。 属性版语法外套已在0.3.1版本完成。 语法外套的目标是维护html的WYSWYG以及简便性, 语法外套都会被预编译成标准语法。 欢迎大家提出新的语法构想。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-16
这是楼主自己想的还是心语法?
|
|
返回顶楼 | |
发表时间:2007-09-07
楼主的这个框架挺好。就是不知道性能怎么样,有没有与jsp和其它模板的性能对比测试?
|
|
返回顶楼 | |
发表时间:2007-09-07
感觉不错,语法很对胃口,大概看了一下代码,定制能力很不错,比较关心的是稳定和性能。
一个问题:能否配置使用${}形式,毕竟这种方式比较通用,眼比较熟。因为主要用在邮件模板以及XML模板,没有JavaScript问题。 |
|
返回顶楼 | |
发表时间:2007-09-07
flash 写道 楼主的这个框架挺好。就是不知道性能怎么样,有没有与jsp和其它模板的性能对比测试?
关于性能方面: (1)解析时,采用针对特定语法写的低级专有DFA解析器解析,比FreeMarker等使用通用抽象的E-BNF语法体系解析(Java中一般用JavaCC或AntLR)要快,因为E-BNF为了通用,考虑了太多因素。当然,E-BNF在处理复杂语法(比如要解析C/C++/Java的语法等时)很有优势,但MeteorTL的语法非常简单且统一,所以使用专有的解析器是比较好的选择, 准备把这一点也写到MeteorTL的优势中去,(BTW: Django模板的优势中也写着使用低级解析器) (2)解析后,结果被表示成一个线程安全(不变类级)的指令树,可以在多线程中任意重复使用,避免使用重复解析或克隆等性能损耗。 (3)并且,解析结果可以被序列化冻结,系统重启后,可以从冻结结果直接还原,不必再解析,也就是说模板只有第一次加载时才需要解析。 (4)解析或还原的模板,都可以在内存中缓存起来,以减少IO量,并且缓存策略是可扩展的。(已内置实现了NONE, STRONG, SOFT, FIFO, LRU, MRU, OSCACHE, EHCACHE等缓存策略) |
|
返回顶楼 | |
发表时间:2007-09-07
crofton 写道 一个问题:能否配置使用${}形式,毕竟这种方式比较通用,眼比较熟。因为主要用在邮件模板以及XML模板,没有JavaScript问题。
语法是可以自定义的,可以查看: 语法定义: org.meteortl.config.Syntax 语法注册: org.meteortl.standard.StandardConfiguration#setSyntax |
|
返回顶楼 | |
发表时间:2007-09-08
经过crofton一提醒,发现大家已经太习惯${}形式了,
而我考虑的JavaScript问题(即:在JS中经常用$()作为getElementById()取值,和${}容易混崤的问题)是否值得为此改变习惯? 思索良久,感觉使用习惯的方式,更容易被接受,对推广也更有益, 准备接纳crofton的想法,顺应习惯,将${}作为默认语法, 当然,继续保持语法的可自定义性,喜欢用其它标识符的也可以自己设置, 这是第二次向习惯妥协了,上一次是注释风格的更改: http://javatar.iteye.com/blog/118734 |
|
返回顶楼 | |