编者按:开源代码一直受到开发者的喜欢,但很多开源代码下载很繁琐,PChome下载中心通过网友的热情支持,开始提供高速快捷的下载通道给用户下载更多的开源代码。欢迎访问《开源代码下载》!
CommonTemplate是一个模板引擎,用于解释CTL模板语言,可在多种运行时环境下使用;其主要目标是作为JSP,ASP.Net等的替代方案,以保证用简单的语法,良好的结构,不混杂业务逻辑的方式书写页面;也可以作为动态文本生成工具,生成HTML、XML、Mail、Java源代码或其它文本等。
CommonTemplate特性:
1.只有一个语法规则:$指令名{表达式},使用更简单,更统一。
2.支持语法外套,可以在Dreamwear下正常使用WYSWYG,并且语法外套也是可扩展的。
3.微核理念,高度可扩展,除了核心API,其它逻辑相关处理都是外置的,包括所有指令及表达式,标准的 for, if, else 等指令,以及 + - * / 等表达式,均可被替换。
4.使用主控迭代器模式替代传统的被动访问器模式,引擎只负责将模板解析成指令树,其它所有处理均由扩展指令自身完成,给扩展指令以最大的控制权。(类似于StAX与SAX的区别)
5.对已有不可变类(String,Number,Date等),属性扩展,采用open class思想。(类似javascript的prototype)
6.支持宏引用及模板继承,更有利于模板组件化。
7.内置的国际化支持,国际化信息处理更方便。
8.多种优化措施,性能更优:
(1) 采用针对特定语法写的低级专有DFA解析器解析,试验表明比使用通用抽象的BNF语法体系解析(Java中一般用JavaCC或AntLR)要快,因为BNF为了通用,考虑了太多因素,导致其效率降低,当然,BNF在处理复杂语法(比如要解析C/C++/Java等语法时)很有优势,但CommonTemplate的语法非常简单且统一,所以使用专有的低级解析器是比较好的选择。
(2) 解析结果被表示成一个线程安全(不变类级)的指令树,单个实例可以在多线程中任意重复使用,避免使用重复解析或克隆等性能损耗。
(3) 解析结果可以在内存中缓存起来,以减少解析次数及IO量,并且缓存策略是可扩展的。(已内置实现了NONE, STRONG, SOFT, FIFO, LRU, MRU, OSCACHE, EHCACHE等缓存策略)
1) commontemplate-x.x.jar 标准二进制包
(2) commontemplate-debug-x.x.jar 便于调试二进制包,采用保留行号方式编译,并包含源代码
(3) commontemplate-src-x.x.jar 源代码包
(4) commontemplate-doc-x.x.jar 文档包,当前网站内容
(5) commontemplate-lib-x.x.zip 构建所依赖的第三方包,此ZIP只有改动时才更新,所以版本号可能与其它文件不一致
(6) CommonTemplateSetup-x.x.exe 查看器安装程序
(7) struts-commontemplate-plugin-x.x.jar 与Struts2的集成包,采用Struts2约定的插件方式打包
(8) ct_struts2-x.x.war 与Struts2框架集成示例应用
(9) ct_struts-x.x.war 与Struts(1.x)框架集成示例应用
(10) ct_webwork-x.x.war 与WebWork框架集成示例应用
(11) ct_springmvc-x.x.war 与SpringMVC框架集成示例应用
(注:8,9,10,11所示war包,放在服务器(如:tomcat)的webapps目录下即可访问(如:http://localhost:8080/war包名),相关Java源代码放在war包内的/WEB-INF/src目录下。)
网友评论