CommonTemplate发布0.8.5版本(2008-08-04)
此版本主要完善核心引擎和标准指令集.
项目地址:
http://www.commontemplate.org
Bug Fixed:
修复BeanUtils查找对象属性的BUG.
修复调试器变量树栈溢出BUG.
调试窗口在Tomcat下无效的BUG.
调试窗口变量树改为延迟加载方式(点击节点时加载其子节点), 避免变量相互引用时, 树节点无穷递归.
修复调试器线程列表显示错误的BUG.
修复三目运算符不能处理null值的BUG, ${null ? "a" : "b"}原来错误输出:"a:b", 改正后输出:"b"
加入对表达式未结束括号的检查, 并抛出正确的异常信息.
修改当有多余的$end指令时抛出友好异常信息, 以前抛出空栈异常.
修改ObjectToJsonPropertyHandler, JavaScriptEscapeFilter, StringEscapeJsHandler, 采用JavaScriptUtils实现转义.
对$if, $elseif, $for等指令进行必需有参数表达式检查, 如果没有则抛出异常信息.
修复StringConvertUtils在转换单一字符上的BUG.
修复ClassUtils对参数相近类型的识别, 使表达式中的函数对泛型等均能正常调用.
修复表达式解析出错时, 没有提示出错位置信息的BUG.
Function Changed:
宏指令改为即可以传参, 又可以访问变量上下文.
块指令调用后缀默认值由"_block"改成".block"(可配置)), 如: $table.block{name : "xxx"} ... $end
$using指令代替原有$import指令的功能(将整个模板作为宏), $import指令改为导入模板内的宏定义.
改为采用反单引号表示不转义串, 不再提倡使用@符.
New Feature:
调试窗口模板面板右键菜单加入"属性"项, 显示模板名称,编码,修改时间等信息.
增加对YAML数据格式的支持. <a href="viewer.html">查看器</a>
完成SpringConfigurationLoader, 通过Spring的beans方式组装配置.
实现外部数据加载指令$load{"xxx.xml"}.
增加结束指令对块指令名称的检查, 如: $end{"if"}, 如果参数名称与被结束的块指令不匹配时抛出异常信息.
实现冒号简化语法: $macro:xxx 等价于 $macro{"xxx"}, $end:if 等价于 $end{"if"}
实现任意区间变量定义指令: $var{session -> user = name}, $var{global -> user = name}
增加===和!==操作符, 表示内存地址相等, 保证功能上的完备性.
增加$return指令, 用于中断$macro.
实现递归迭代, 如: $for{menu -> children : menus}
实现注释结束符, 不解释块结束符的转义, 如: $* \*$ *$ 以及 $! \!$ !$
实现展开式列表,如:${1,3..6,9} 输出展开式列表:[1,3,4,5,6,9],而:${1,(3..6),9} 或者 ${1,[3..6],9} 输出两级列表:[1,[3,4,5,6],9]
增加对".12"格式的小数支持, 保持与Java一致.
增加集合乘法支持, 如: ${["a", "b"] * 2} 输出: [a, b, a, b]
增加字符串除号("/")运算, 表示分割字符串, 如: ${"aaa.bbb.ccc" / '.'} 输出数组: [aaa, bbb, ccc]
增加字符串减号("-")运算, 表示过滤字符串, 如: ${"aaa.bbb.ccc" - '.'} 输出: aaabbbccc
增加操作符"^~", "$~", "*~", 与原有的"^=", "$=", "*="功能相似, 不同点在于忽略大写小比较.
增加操作符"^-", "$-" 分别表示截取前后缀,如:${"note.txt" ^- "."} 输出:note ,而:${"note.txt" $- "."} 输出:txt
增加操作符"^?", "$?" 分别表示indexOf, lastIndexOf,如:${"aaa.bbb.ccc" ^? "."} 输出:3 ,而:${"aaa.bbb.ccc" $? "."} 输出:7
增加操作符"*?", 表示整个字符串中匹配子串的个数,如:${"xxxabcxxxabcxxx" *? "abc"} 输出:2
增加C#.Net的is操作符, 功能与instanceof相同, 但更简洁, 提倡使用is.
增加$操作符, 表示创建实例, 如: ${$com.xxx.User(id: 1, name:""james)}
增加sum,avg,max,min等聚合函数, 如: ${sum(3,4,7)} 输出: 14
增加命名转换扩展属性: String.toCamelNaming, String.toCapitalNaming, String.toUnderlineNaming.
增加uncapitalize与capitalize相对应. 去除首字母大写.
增加String.toAscii和toUnicode, 分别表示Unicode码与Ascii码之间的转换.
增加String.toSwapCase, 交换大小写, 把字符串中大写的改为小写, 小写的改为大写, 与toUpperCase,toLowerCase对应.
增加字符填充leftPad和rightPad实现, 如: ${"123".leftPad(6, '0')} 输出:000123
增加 $ignore...$end 指令, 执行指令内部块, 但忽略输出.
增加 $capture{"variableName"} ... $end 指令, 捕获指令内部块输出到变量中.
增加 $strip, $trim, $leftTrim, $rightTrim 等指令, 用于删除空白符和截短两端空白符.
增加 $try $catch 指令, 用于捕获$exec和$eval等动态指令错误.
增加 $assert 指令, 用于断言前置条件,不变式等.
增加数字扩展属性: positive, negative, abs, sign
增加Float和Double类型取整属性 toCeilingInteger(向上取整), toFloorInteger(向下取整)
增加Integer和Long类型转为二进制,八进制,十六进制表示串属性 toBinaryString, toOctalString, toHexString
增加String.empty, whitespace, naming, number等字符串类型状态属性.
------------
感谢James.Li和Andrew.Chen的热心帮助
分享到:
相关推荐
**标题:“libnodave-0.8.5版本”** libnodave是一个开源的C语言库,专为实现工业自动化设备中的西门子S7系列PLC(包括PLC200、300和400)与上位机之间的通信而设计。这个0.8.5版本提供了稳定的接口和功能,使...
GNS3-0.8.5-all-in-one.zip 是一个包含GNS3 0.8.5版本的压缩包,这个版本可能较旧,但对于某些用户来说,它可能是稳定且适合他们特定需求的版本。 GNS3的核心功能是基于 Dynamips,它能够模拟Cisco路由器的硬件级别...
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:taichi-0.8.5-cp37-cp37m-macosx_10_14_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
不要再使用0.8.0,看0.8.5的优化 此版本是最新版本 centos请先安装 yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* 然后编译安装
在标题中提到的"apache-tez-0.8.5-bin.tar.gz"是一个包含Apache Tez 0.8.5版本二进制文件的压缩包,适用于那些希望在其Hadoop集群上启用Tez功能的用户。 Tez的主要目标是提高MapReduce的性能,尤其是在复杂的计算...
FFmpeg 0.8.5 是一个非常重要的版本,它是一个开源的跨平台工具套件,主要用于音频和视频处理。这个版本包含了丰富的功能,能够帮助用户进行多媒体文件的转码、播放以及实现实时的RTSP(Real-Time Streaming ...
在本文中,我们将深入探讨Robomongo 0.8.5的Windows版本,以及如何在Windows操作系统上安装和使用它。 首先,MongoDB是一种流行的开源、文档型的NoSQL数据库系统,因其灵活性和高性能而受到广泛欢迎。然而,由于...
本文将深入探讨cocos2d-0.99.5-x-0.8.5这一稳定版本,揭示其精简高效的设计理念,并介绍如何利用这一版本进行游戏开发。 cocos2d的核心特性包括场景管理、动作和动画系统、精灵和图层、物理引擎支持以及触摸事件...
这个版本0.8.5是requests库的一个早期版本。 在Python生态系统中,requests库由Kenneth Reitz开发并维护,它提供了简洁易用的接口来处理HTTP请求。这个0.8.5版本可能包含了基础的HTTP方法(GET、POST、PUT、DELETE...
这个压缩包“GNS3-0.8.5 32bit”提供了GNS3的32位版本,适用于那些运行32位操作系统的用户。最新版本的GNS3通常包含了最新的功能改进和修复,以提供更稳定、高效的网络模拟环境。 GNS3的主要功能包括: 1. **网络...
这个压缩包包含的是JaCoCo(Java Code Coverage Library)的一个版本,具体是v0.8.5。JaCoCo是一款强大的开源工具,用于测量和报告Java应用程序的代码覆盖率。它支持类加载器级别的覆盖率数据收集,能够集成到构建...
python_geohash-0.8.5-cp310-cp310-win32
标题中的"python_geohash-0.8.5-cp311-cp311-win_amd64.whl.zip"是一个Python软件包的压缩文件,它包含了Python的GeoHash库的一个特定版本。GeoHash是一种地理位置编码技术,用于将经纬度坐标转换成可存储和查询的...
Tez 0.8.5是该框架的一个特定版本,与Hadoop 2.6.5兼容,这意味着它是为在Hadoop 2.x环境下运行而设计的。在Java 1.8环境下,这个版本的Tez能够充分利用JDK的新特性和性能提升。 Tez的主要目标是优化大规模数据处理...
标题中的"python_geohash-0.8.5-cp39-cp39-win_amd64.whl.zip"表明这是一个与Python相关的压缩包,其中包含了一个名为"python_geohash-0.8.5-cp39-cp39-win_amd64.whl"的文件,这个文件是Python的轮子(wheel)格式...
专业权威的电脑显卡检测软件GPU-Z.0.8.5,用于检测并提供你的显卡的详细硬件信息,显示显卡名称型号、BIOS版本及发布日期,像素/纹理填充率,显卡显存类型及总线宽度,显存带宽及驱动程序版本,显卡中最重要的GPU时钟...
标题中的“python_geohash-0.8.5-cp310-cp310-win_amd64.whl.zip”是一个Python软件包的压缩文件,它包含了Python的Geohash库的一个特定版本(0.8.5)。这个库主要用于处理地理坐标,并将它们转换成可存储和比较的...
无垠式Java通用代码生成器经典版本最新更新版0.8.5发布了。 此版本基于经典的无垠式代码生成器三引擎版0.8.0。包含simplejee,s2sh和s2shc三种技术栈。本更新版生成引擎并未更新。只是升级SGS代码编辑器为支持语法加...
vlc-0.8.5-win32.exe
在goaccess-0.8.5版本中,开发者可能已经修复了一些已知的bug,增强了性能,或者添加了新的功能,以提供更好的用户体验。 在解压goaccess-0.8.5.tar.gz后,你会得到一个名为goaccess-0.8.5的目录,其中包含了源代码...