阅读更多

4顶
0踩

编程语言

原创新闻 CommonTemplate0.8.5发布

2008-08-04 15:01 by 正式记者 javatar 评论(6) 有5800人浏览
CommonTemplate0.8.5发布(2008-08-04)

CommonTemplate是一个模板引擎,用于编译运行CTL模板语言,并且模板可以在Java,.Net,JS等中通用;
其主要目标是作为JSP,ASP.Net等的替代方案,以保证用简单的语法,良好的结构,不混杂业务逻辑的方式书写页面;
适合于充当Model-View-Controller(MVC)模式应用的View角色,以使能更好的分离页面设计人员与业务开发人员的职责;
也可以作为动态文本生成工具,生成HTML、XML、Mail、Java源代码或其它文本等。

此版本主要完善核心引擎和标准指令集.
项目地址:
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的热心帮助
来自: CommonTemplate
4
0
评论 共 6 条 请登录后发表评论
6 楼 javatar 2008-08-05 11:36
jianfeng008cn 写道
可以不破坏html格式 是吧?我不想放弃dreamweaver编辑网页这一功能 或者jsp编辑器 freemarker就是没这种可视化功能,不适合个人soho

可以使用注释语法外套(指令两边的HTML注释符会被过滤掉):
<!--$for{user: users}-->
...
<!--$end-->
或属性语法外套(因解析HTML语法,有性能损耗):
<tr ct:for="user: users" />
...
</tr>
5 楼 CobWeb 2008-08-05 10:49
确实不错
4 楼 jianfeng008cn 2008-08-05 07:46
可以不破坏html格式 是吧?我不想放弃dreamweaver编辑网页这一功能 或者jsp编辑器 freemarker就是没这种可视化功能,不适合个人soho
3 楼 jasongreen 2008-08-05 01:25
正式发布啦,yeah
2 楼 javatar 2008-08-04 21:04
呵呵, 谢谢你的关注.
1 楼 cuiyi.crazy 2008-08-04 19:22
其主要目标是作为JSP,ASP.Net等的替代方案
------------------
因为怀疑而关注

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • nethogs 0.8.5 linux流量监控

    不要再使用0.8.0,看0.8.5的优化 此版本是最新版本 centos请先安装 yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* 然后编译安装

  • 深信服edr终端漏洞

    一、前言 最近这些天来了广州当蓝方,工作之余听到了几个朋友说关于深信服edr爆0day的情况,自己也没时间复现,就简单记录一下。 该XXX简介: 深信服终端检测响应平台EDR,围绕终端资产安全生命周期,通过预防、防御、检测、响应赋予终端更为细致的隔离策略、更为精准的查杀能力、更为持续的检测能力、更为快速的处置能力。在应对高级威胁的同时,通过云网端联动协同、威胁情报共享、多层级响应机制,帮助用户快速处置终端安全问题,构建轻量级、智能化、响应快的下一代终端安全系统。 ** 二、影响范围 fofa上大概有37页

  • 从零开始部署深信服EDR

    从零开始部署深信服EDR 手动安装centos https://www.osyunwei.com/archives/7829.html vmware安装centos7并联网 https://blog.csdn.net/zhagzheguo/article/details/79433113 虚拟机安装centos7网络配置 https://blog.csdn.net/qq_36178641/arti...

  • CommonTemplate发布0.8.5版本

    CommonTemplate发布0.8.5版本(2008-08-04) 此版本主要完善核心引擎和标准指令集. 项目地址: [url]http://www.commontemplate.org[/url] Bug Fixed: 修复BeanUtils查找对象属性的BUG. 修复调试器变量树栈溢出...

  • tez-0.8.5-hadoop-2.6.5-bin.zip

    tez-0.8.5-hadoop-2.6.5-bin,java1.8。hadoop2.6.5,jdk1.8,tez-0.8.5的编译包。

  • GNS3-0.8.5-all-in-one.zip

    低版本 GNS3 0.8.5 版本 自己平时做实验在正常使用的

  • GNS3-0.8.5 32bit

    GNS3-0.8.5 32bit 最新版本

  • Datahub 0.8.5发布! 通用的元数据搜索和发现工具

    近期Datahub 发布了最新的版本0.8.5,作为LinkedIn开源的通用的元数据搜索和发现工具。Datahub近一年来有了巨大的发展,也成为了很多公司进行元数据管理的调研方向并进行使...

  • 第三方Scratch 离线桌面软件 Kidsline v0.8.5

    基于v0.8.2 发现的问题做了一些小修正。 1. 修复从硬件界面新建项目舞台消失不见 2. 软件界面上禁用滚轮放大缩小,防止小朋友不小时误按 3. 在设置中,增加界面大小自定义功能 4. 在 wedo模块中增加了关闭集线器...

  • Manjaro Linux 0.8.5 发布

    Manjaro Linux 0.8.5 发布了,下载地址: manjaro-xfce-0.8.5-x86_64.iso (1,260MB) manjaro-openbox-0.8.5-x86_64.iso (699MB). 发行说明:http://manjaro.org/2013/04/13/manjaro-0-8-5-released/ Manjaro...

  • jacoco-0.8.5.zip

    soanrqube-jacoco-代码覆盖率插件,

  • Lemmy仿Reddit社区 v0.8.5

    为您提供Lemmy仿Reddit社区下载,Lemmy是一个Rust实现的类似于 Reddit、Lobste.rs、Raddle 与 Hacker News 等网站的项目,用户订阅感兴趣的论坛、发布链接和讨论,可以进行点赞/点踩,并对它们发表评论。Lemmy基于...

  • ffmpeg-0.8.5

    最新的ffmpeg源码包,下载后解压参看install,可正常编译使用

  • libnodave-0.8.5版本

    源码支持PLC200/300/400与上位机进行通讯,采用S7协议

  • blcr-0.8.5.

    blcr-0.8.5

  • buildbot-0.8.5

    buildbot-0.8.5

  • 老树新花,无垠式Java通用代码生成器经典版本最新更新版0.8.5

    无垠式Java通用代码生成器经典版本最新更新版0.8.5发布了。 此版本基于经典的无垠式代码生成器三引擎版0.8.0。包含simplejee,s2sh和s2shc三种技术栈。本更新版生成引擎并未更新。只是升级SGS代码编辑器为支持语法加...

  • jewelcli-0.8.5.jar

    JewelCli使用带注释的接口定义来自动分析和显示命令行参数 com.lexicalscope.jewelcli/jewelcli/0.8.5/jewelcli-0.8.5.jar

  • buildbot-slave-0.8.5

    buildbot-slave-0.8.5

  • libnodave-0.8.5.zip

    用于和PLC进行数据交互的库文件

Global site tag (gtag.js) - Google Analytics