HTTL
文章平均质量分 54
u010805542
这个作者很懒,什么都没留下…
展开
-
velocity邮件列表中,问得频率比较高的几个问题
1. 没想到最高的是:特殊符怎么转义? velocity没有使用大家惯用的反斜杠,大部分人在尝试\#或\$或\"失败后很疑惑,有人想出的“绝妙”办法是:#set($D='$'),然后 ${D}2. 性能,Velocity1.5比1.4内存消耗更大,在单例使用VelocityEngine时经常出现OutOfMemoryError3. 模板加载路径,热加载4. 多数组取值5. 格式化处...2007-11-01 15:41:28 · 72 阅读 · 0 评论 -
CommonTemplate发布0.7.6
此版本重构了side包的集成方案,将所有web集成统一用Listener进行初始化:[code="xml"] commontemplate-config org/commontemplate/standard/commontemplate-standard.properties org.commont...2007-12-06 22:07:45 · 126 阅读 · 0 评论 -
lambda表达式语法思考
CommonTemplate([url]http://www.commontemplate.org[/url])最近实现了简单的lambda表达式功能,但操作符语法未定,可选方案:1.仿Python,采用“lambda”如:list[lambda i : i > 0]符合标准lambda表达式定义格式,但太复杂,不简洁。2.仿JavaFX,采用“|”如:list[i |...2007-12-17 10:16:15 · 103 阅读 · 0 评论 -
编译期模板区域定义
CommmonTemplate([url]http://www.commontemplate.org[/url])现在的所有区域信息定义都是动态产生的,包括zone, block, macro,而有些功能需要不执行模板就获取它的区域块。经常需要用到局部包含功能,如,页面包含时,经常只需包含另一页面的里面的部分。现在的区域定义是动态的,在执行期产生的,如:$zone{"body"...2007-12-18 14:50:38 · 137 阅读 · 0 评论 -
更新CommonTemplate类图
昨天更新了UML, 保持与API同步, 加入了设计域框标识, 并采用了四色原型.四色原型概要[Coad95-97]红色:moment-interval (瞬时状态,会话)黄色:role (主动域,操作者)绿色:party, place or thing (被动域,值对象,实体等)蓝色:catalog-entry-like description (分类标识)项目站点显示...2007-12-24 09:29:41 · 76 阅读 · 0 评论 -
借鉴CSS3的表达式
看了一遍CSS3的表达式设计, 准备借鉴其"^=", "$=", "*="三个操作符,分别表示startsWith, endsWith, containsWith,等号前的符号和正则表达式中的符号含义相似, 比较容易接受,参见:[url]http://www.w3.org/TR/2005/WD-css3-selectors-20051215/[/url]准备在下一个...2007-12-28 10:57:57 · 195 阅读 · 0 评论 -
CommonTemplate0.8.0发布
在元旦之夜发布了0.8.0[url]http://www.commontemplate.org[/url]增加了与struts及struts2的集成sample, (见下载列表中的commomtemplate-sample-0.8.0.zip)将宏指令的特殊前缀语法去掉, 改成命名约定:受FreeMarker影响, 它使用仿XML的:[code="xml"]...2008-01-02 22:20:49 · 96 阅读 · 0 评论 -
初步完成JspTaglib适配
CommonTemplate([url]http://www.commontemplate.org[/url])已初步完成PageContext, BodyContent, JspFragment, JspWriter 等的适配实现,以及Tag, IterationTag, BodyTag, SampleTag 等的适配回调。(题外话:JspTagLib的接口不太友好,简单的树遍历做了很多绕弯...2008-01-22 22:01:53 · 153 阅读 · 0 评论 -
CT重构-充实模板域模型
在CommonTemplate([url]http://www.commontemplate.org[/url])的模板域模型中, 包含两个解析树结构:一、指令树:[code="java"]Directive (指令, 接口) Text (文本块,内置) Comment (注释块,内置) LineDirective (行指令,可扩展) Blo...2008-01-24 10:51:42 · 167 阅读 · 0 评论 -
CommoTemplate发布0.7.5
调整了core包与engine包的一些细节,修改了Boolean运算,使其符合JavaScript风格:即:null作为false处理,|| 运算符返回第一个非false(或非null)的对象(注:不一定是Boolean值)衍生出的写法:$for{item : list1 || list2 || list3}选择第一个非空集合迭代。加入了并行迭代支持:$for{...2007-12-04 10:48:01 · 1340 阅读 · 0 评论 -
循环包含问题
在CommonTemplate([url]http://www.commontemplate.org[/url])中,内嵌模板指令 $inline{"xxx.ctl"} 相当于JSP中的 包含模板指令 $include{"xxx.ctl"} 相当于JSP中的 当a模板内嵌(或包含)b模板,同时b模板又内嵌(或包含)a模板,也有可能不只两个模板,只要形成环路,就会出现死循环。...2007-12-03 14:52:51 · 166 阅读 · 0 评论 -
与EasyJF集成
今天和EasyJF框架([url]http://www.easyjf.org[/url])的作者“天一”加为好友,很高兴认识他,我们决定把CommonTemplate([url]http://www.commontemplate.org[/url])与EasyJF框架集成,希望以后可以更多合作,互相勉励,共同进步。...2007-11-30 12:46:32 · 79 阅读 · 0 评论 -
配置框架设计
CommonTempalte([url]http://www.commontemplate.org[/url])的配置方案一直没定,主API提供的都只是编程调用相应setXXX,addXXX完成相应配置,这两天思考了一下其配置框架的设计。配置框架需要处理的问题是:1.可配置完成的工作,一定要能可编程实现,如果用户不用任何配置文件,而是编程调用相应setXXX,addXXX,应能完成...2007-11-09 10:51:42 · 112 阅读 · 0 评论 -
CommonTemplate配置方案确定
根据前几天的思考:[url]http://javatar.iteye.com/blog/139420[/url]CommonTemplate([url]http://www.commontemplate.org[/url])的配置方案确定,采用全setter方式配置,以保持可以用任意IoC容器进行配置,但为了不依赖于任何IoC容器使用组件,在util包中实现了一个简单的BeanFa...2007-11-11 19:29:36 · 320 阅读 · 0 评论 -
CommonTemplate与Struts2集成
现在用Struts2的人开始多起来,为CommonTemplate([url]http://www.commontemplate.org/[/url])加了一个与Struts2的集成方案,Struts2([url]http://struts.apache.org/2.x/[/url])与Webwork一样,提供了模板输出hook,所以集成是比较简单的,只需实现StrutsResultS...2007-11-12 10:06:52 · 74 阅读 · 0 评论 -
CommonTemplate发布0.7.1版本
项目地址:[url]http://www.commontemplate.org[/url]主要完成了配置管理,改回基于jdk1.4,API将部分接口改成抽象类,修改了一些bug,加入或修改了inline, log, escape, overzone等指令,加入了操作符~和!~表示正则表匹配,将格式化操作符改成#...2007-11-14 21:10:22 · 75 阅读 · 0 评论 -
CommonTemplate与JSP的互操作方案
昨天和[url=http://huangyh.iteye.com]huangyh[/url]讨论了CommonTemplate([url]http://www.commontemplate.org[/url])与JSP的互操作方案,他觉得如果能在CommonTemplate中直接调用JSP,可以解决遗留系统的集成问题,如:在CommonTemplate中:$jsp 直接写JSP...2007-11-16 13:19:30 · 136 阅读 · 0 评论 -
模板是否应该支持函数调用?
首先,将Java中的Method分成:Subroutine和Function两种,按照“契约式设计原则”的说法,Subroutine是有副作用的(side-effect),而Function是没有副作用,语法上,Subroutine通常没有返回值,即void方法,而Function则有返回值,比较明确的是,模板肯定不允许调用Subroutine,否则肯定会引入大量业务逻辑,现在...2007-11-21 13:56:07 · 199 阅读 · 0 评论 -
重用CommonTemplate的EL
上几天和[url=http://jindw.iteye.com]jindw[/url]讨论时,他提到想在他的一个开源项目重用CommonTemplate([url]http://www.commontemplate.org[/url])的EL (Expression Language),问我是否可以抽取使用,我觉得这是一个很好的想法,为此重构了一下CommonTemplate,以使EL...2007-11-21 18:01:53 · 96 阅读 · 0 评论 -
缓存同步策略重构
简述一下CommonTemplate([url]http://www.commontemplate.org[/url])的模板工厂每次获取模板的过程如下:检查内存缓存中是否存在,若不存在,则检查持久化缓存中是否存在,若还不存在,则重新解析模板并将模板压入内存缓存及持久化缓存,若存在,则检查是否需要热加载,若需要热加载,则对比文件是否已更改,若已更改,则重新解析模板并将模...2007-11-23 16:13:00 · 101 阅读 · 0 评论 -
修复Getter取值BUG
[url]http://www.commontemplate.org[/url]BUG: 在获取特殊Class(内部类)的属性时可能抛出异常, 将在下一版本(0.8.2)更新修复此bug.重构前程序:[code="java"]public class ClassUtils { /** * 获取对象的属性值 * * @param object 对象实例...2008-02-10 20:02:39 · 116 阅读 · 0 评论 -
Html标签属性语法外套
CommonTemplate( [url]http://www.commontemplate.org[/url] )的Html标签属性语法外套是项目比较重要的Feature.如:[code="xml"] 1 james 2.00 [/code]过滤后:[code="xml"]$if{users != null && users.si...2008-02-11 21:44:21 · 101 阅读 · 0 评论 -
CommonTemplate任务计划20080212
CommonTemplate任务计划基准版本:0.8.2基准时间:2008-02-12序号任务描述类型1异常国际化, 将所有异常信息用统一的工具类管理, 并配置到properties文件中.优化2出错位置信息准确性, 当抛出异常时, 应显示准确的出错元素在模板中的行列位置, 并显示出错位置附件的模板内容.BUG3错误信息友好性, 抛出来的异常信息应有助于解决错误, 不应该出现底层的无意义信息, 可...2008-02-12 20:42:58 · 87 阅读 · 0 评论 -
很高兴桂林兄加入CommonTemplate的开发
桂林的blog:[url]http://jasongreen.iteye.com[/url]桂林今天一天就完成了HTML属性语法外套的重构, 采用Jericho进行实现, 并抽取了策略接口, 真是佩服他的高效.在下一版本(或下载每日构建版本)将可以使用有着高度容错能力的Jericho实现:[code="xml"] James [/code]...2008-04-05 20:49:27 · 84 阅读 · 0 评论 -
CommonTemplate准备加入$breakpoint指令
准备在CommonTemplate( [url]http://www.commontemplate.org[/url] )的debug指令集内加入 $breakpoint 指令.当引擎遇到$breakpoint指令时, 将页面执行过程挂起, 弹出swing做的模板上下文变量栈跟踪器.可以在跟踪器界面上查看当前上下文的所有变量, 点击"Step Into"按钮单步执行指令, 块指令将进入...2008-04-19 10:30:18 · 159 阅读 · 0 评论 -
CommonTemplate完成DEBUG单步调试
CommonTemplate([url]http://www.commontemplate.org[/url])的Debug单步跟踪初始版完成, 可下载每日构建版本试用. ([url]http://commontemplate.googlecode.com/svn/trunk/commontemplate/dist/[/url])将在后期TemplateEditor的eclipse插件中集...2008-04-21 09:56:47 · 134 阅读 · 0 评论 -
关于CTE当前API无法支持从非引擎方式构建模板树
因隐藏了模板树的实现, 现在CommonTemplate([url]http://www.commontemplate.org[/url])必需从引擎生成模板树.但上次在回复严荣的博客时:[url]http://yananay.iteye.com/blog/180723[/url]发现, 用户应该能用任意方式生成模板树才行, 也就是可以通过编程的方式,而非解析的方式构建模板树,...2008-04-28 17:20:44 · 88 阅读 · 0 评论 -
CommonTemplate完成$snatch指令
CommonTemplate([url]http://www.commontemplate.org[/url])完成$snatch指令, 实现与JSP页面或其它页面的互操作.假设当前访问路径为: http://localhost:8080/ct/sample/index.ctl$snatch{"list.jsp"} 相对于当前页面路径目录, 抓取路径: http://l...2008-05-06 09:20:55 · 95 阅读 · 0 评论 -
CommonTemplate导出模板所需变量结构
在velocity的邮件列表中收到下面的邮件:[quote="Simon Gubler's EMail"]Hi allI have written a small tool that scanns velocity-files and extracts all called variables. It's a command-line tool, you can execute i...2008-05-12 18:28:07 · 111 阅读 · 0 评论 -
CommonTemplate加入对无穷数的支持.
用"*"号表示无穷数, 常在下标号中使用, 如: [code="java"]${users[2..*]} // 等价于 ${users[2..users.size]} [/code]如果用在for循环中, 需自行break, 如: [code="java"]$for{num: 0..*} $break{num > 10} // 或其它表达式$end[/co...2008-05-23 11:07:47 · 70 阅读 · 0 评论 -
CommonTemplate异常国际化完成
周未把一个累活给干了, 就是异常信息的国际化.总共有220多个地方需要国际化, 把我都找晕了, 但总算完成了.在断言工具类, 异常基类, 异常工厂等中进行了国际化适配.其它调用的地方均传入国际化key.有快两个月未发布版本了, 已经增加了不少功能, 并修复了较多BUG, 再仔细检测后, 这周内将发布新版本.项目地址:[url]http://www.commontem...2008-05-26 11:48:54 · 110 阅读 · 0 评论 -
展开式序列实现
现在CommonTemplate([url]http://www.commontemplate.org[/url])已有的序列实现:${1,3..5,8}相当于:${1,(3..5),8}它将输出嵌套集合.但有时候需要使用将它们展开串行起来,也就是使:${1,3..5,8}等价于:${1,3,4,5,8}但不能去除已有功能.方案一:加入"--...2008-03-31 22:47:34 · 149 阅读 · 0 评论 -
CommonTemplate 0.8.3 版本发布
项目地址: [url]http://www.commontemplate.org[/url]0.8.3 版本发布 (2008-03-30) 此版本新功能较少, 主要为加强测试与BUG修复. 将操作符类型重载处理方式从职责链模式改成配置分派模式. 加入数组格式化器, Object[].toString不再出现地址符, 相关配置: defaultArraySeparator...2008-03-31 15:05:38 · 69 阅读 · 0 评论 -
JSON标准元数据定义描述语言的思考
最近在为XX速运公司做项目预研时, 为简化B/S开发, 需将Ext封装成Jsp Taglib, 网上已有多种封装方案, 如: exttld, 以及金蝶将Ext封装成JSF标签等, 公司原也有一套封装, 但文档不全且不太稳定, 所以决定重新封装, 通过三天的努力已基本稳定, 感谢所有开发人员的速度, 我们采用和exttld相似的与Ext一对一封装, 这样做学习成本较低, 灵活性较强(...2008-03-17 22:13:26 · 846 阅读 · 1 评论 -
CommonTemplate发布0.8.6版本
CommonTemplate发布0.8.6版本(2008-08-26)项目地址: [url]http://www.commontemplate.org[/url]Bug Fixed:修复BeanUtils在访问级安全控制上的BUG将Class.forName()统一改为ClassUtils.forName(), 使用当前线程类加载器加载类, 并支持基本类型.修复$for指令以及...原创 2008-08-26 20:49:34 · 124 阅读 · 0 评论 -
CommonTemplate访问者设计思考
经过多个版本的调整, CommonTemplate([url]http://www.commontemplate.org[/url])的核心包设计逐渐稳定. 但访问者的设计一直是块心病, 并且访问者是合成模式[GoF95]树结构中比较重要的扩展点.CommonTemplate中的访问者最开始设计:[code="java"]public interface Visitor {...2008-09-03 10:45:59 · 123 阅读 · 0 评论 -
CommonTemplate增加HTML标签版语法外套
CommonTemplate([url]http://www.commontemplate.org[/url])已提供了注释版和属性版语法外套.注释版语法外套:[code="xml"] 1 james ...2008-09-09 10:33:06 · 119 阅读 · 0 评论 -
YanRong完成常量编译期计算优化
首先感谢YanRong做出的成果.以前的版本只做了1+2+b优化成3+b, 但b+2+1因结合律问题未作处理(同优先级操作符从左至右结合,因而无法判断常量计算).YanRong对此问题进行了解决.优化:a*(1+2+b) 优化成 a*(3+b)a*(1+2*b) 仍然是 a*(1+2*b)a*1+2+3 优化成 a*1+5等等测试后可能会在下一版本加入....2008-02-20 22:56:37 · 266 阅读 · 0 评论 -
很高兴看到CommonTemplate出现在论坛首页的优秀项目推荐
很高兴看到CommonTemplate出现在论坛首页的优秀项目推荐,这样推广度将加强很多, 我们也将加快完善步伐.Thanks for javaeye.2008-02-24 11:18:46 · 42 阅读 · 0 评论 -
FreeMarker准备在2.4版中加入新的指令#template
FreeMarker准备在2.4版中加入新的指令#template, 用于上下文隔离包含模板. 与原有的#include相对应, #include为上下文内包含(内嵌)模板.然而, 大家对这一新指令的命名都极不赞同.首先template是一个名词, 不适合用于包含这样一个动作性指令名.[quote="Attila Szegedi 回复的邮件"]Sorry for nitpick...2008-03-05 21:18:19 · 106 阅读 · 0 评论