零全零美(www.zzgwt.com)
生活中的很多事情,并不像If...Else那么简单!
posts - 96,comments - 52,trackbacks - 0
11 2008 档案
正则表达式学习笔记(3) 简单量词      摘要: 量词用于指定特定模式出现的次数,这个次数可以是硬性的,如某个字符应该出现4次,如果没有出现四次就是错的,也可以是软性的,如某个字符应该出现0至4次,意思是该字符可以出现,也可以不出现,可以出现一次,两次,也可以出现三次,四次。  阅读全文
posted @ 2008-11-29 14:13 零全零美 阅读(1724) | 评论 (3)  编辑
JavaScript学习笔记(7) IE环境下cloneNode的一个bug      摘要: cloneNode是进行DOM操作经常使用的方法,有了它我们可以很容易的克隆一个跟原来一模一样的DOM对象,如:在动态增加table的行的时候,我们只需克隆一个table中现有的行,然后调用talbe.appendChild()方法就可以实现,而无需调用table繁琐的DOM操作方法。但是在开发中,我发现cloneNode在对select进行克隆时却无法克隆出当前选中的option,克隆出来的对象的options中拥有selected属性的永远都是第一个。
  阅读全文
posted @ 2008-11-24 13:08 零全零美 阅读(1927) | 评论 (1)  编辑
正则表达式学习笔记(2) 多选结构--匹配任意子表达式      摘要: "|":意思是"或",他可以把多个子表达式组合成一个总的表达式,而这个总表达式拥有子表达式的全部能力  阅读全文
posted @ 2008-11-21 13:44 零全零美 阅读(3638) | 评论 (2)  编辑
正则表达式学习笔记(1) 行的开始和结束、字符组、连字符、脱字符、用"."去匹配任意字符      摘要: 行的开始和结束 开始符号:^ 结束符号:$ 如:^cat 应该理解为以c作为一行的第一个字符,紧接着是a,然后是t
例如:String str = "catabdcatdetfcat"
^cat : 验证该行以c开头紧接着是a,然后是t
cat$ : 验证该行以t结尾倒数第二个字符为a倒数第三个字符为c
^cat$: 以c开头接着是a->t然后是行结束:只有cat三个字母的数据行
^$ : 开头之后马上结束:空白行,不包括任何字符
^ : 行的开头,可以匹配任何行,因为每个行都有行开头
  阅读全文
posted @ 2008-11-19 19:36 零全零美 阅读(17735) | 评论 (7)  编辑
[原创]JBPM源码解读之:Join      摘要: 前面我有一篇《JBPM源码解读之:Fork》,大致分析了JBPM对于Fork的实现方式,其实Fork和Join是不可分割的一对,Fork实现分拆,Join实现汇集。先让我们看一下《JBPM 3.2.3 User Guide》中关于Join的描述:
The default join assumes that all tokens that arrive in the join are children of the same parent. This situation is created when using the fork as mentioned above and when all tokens created by a fork arrive in the same join. A join will end every token that enters the join. Then the join will examine the parent-child relation of the token that enters the join. When  阅读全文
posted @ 2008-11-14 23:55 零全零美 阅读(1902) | 评论 (2)  编辑
[原创]JBPM实践之:并发子流程的实现      摘要: 关于JBPM中并发子流程的实现方式,网上有很多的说法,但是好像每种办法都有这样那样的缺点,要么实现太复杂,要么就是会使Token无法继续流转。这里我介绍一种我的并发子流程的实现方式:使用TaskNode使任务并行的方式,模拟实现JBPM子流程的并发执行。
我先简单的介绍一下实现思路:
1、数据库中应该有至少三个已经发布过的流程定义(ProcessDefinition),发布的顺序无所谓,一个主流程两个子流程
2、我们在主流程中要实现并发子流程的环节放置TaskNode,设置create-tasks="false"、signal="last-wait"
3、我们想要实现几个子流程的并发就在第二步放置的TaskNode中放置几个Task,每个Task的名字都是要并发的子流程的名称
4、在TaskNode的Node-Enter action中,我们手动为每一个Task创建一个任务实例,同时我们取得Task的名字也就是要并发的子流程的名字,创建流程实例
  阅读全文
posted @ 2008-11-12 15:00 零全零美 阅读(3302) | 评论 (6)  编辑
JBPM实践之:使用Fork中的Script实现多路路由选择      摘要: 在阅读本文之前,建议先阅读一下《JBPM源码解读之:Fork》以了解Fork中Script的配置方法及处理方式:
按照Fork对Script的规范Script必须包含一个具有write权限的变量,而且该变量必须实现java.util.Collection接口。  阅读全文
posted @ 2008-11-05 17:05 零全零美 阅读(1902) | 评论 (4)  编辑
[原创]JBPM源码解读之:Fork      摘要: Fork节点在整个JBPM流程运转过程中配合Join使用提供使多于一个的节点如:TaskNode、State等并行运行的作用,很可惜我们不能利用Fork提供的现有机制实现需求中经常遇到的并发子流程的效果,当然虽然JBPM并不支持并发子流程的机制,并不代表我们不能变通的实现,我将在另一篇文章中详细说明我的并发子流程的实现方式。
Fork类的注释中说:if this fork behaviour is not sufficient for your needs, consider writing your own custom TokenHandler.看来连JBPM开发小组也意识到Fork可能不能满足某些特殊的需求。注释中还说Fork节点有三种配置方式,我很奇怪为什么代码中只能找到两种:  阅读全文
posted @ 2008-11-05 16:41 零全零美 阅读(2092) | 评论 (0)  编辑
JavaScript学习笔记(6) 通过延迟触发使onDbClick时不触发onClick事件      摘要: 在默认的情况下,双击事件时是要触发单击事件的,但是这种情况有时候却是我们不想要的,那么如何才能在双击的时候屏蔽单击事件的触发呢?网上流传一种延迟执行的方法,大致思路如下:
1、声明一个全局的计时器变量如:clickTimer
2、在代理单击事件里设置计时器,默认220毫秒之后触发真正的单击事件处理函数
3、在双击事件里判断计时器变量,如果该变量不为NULL,则说明在触发该双击事件前触发了单击事件,取消计时器,因为真正的单击事件处理函数在220毫秒之后才会触发,所以在这个时候结束定时器,则真正单击事件处理函数不会被执行。  阅读全文
posted @ 2008-11-04 20:14 零全零美 阅读(1243) | 评论 (0)  编辑