2008-07-03
在drools规则条件中使用日期进行比较
系统默认支持dd-MMM-yyyy格式.
规则条件编写如下:
日期设置如下:
不知道为什么就出现Exception,内容如下:
不知道有谁有经验的,帮忙说明下!
后来我通过设置drools.dateformat,让系统支持dd-MM-yyyy,这样就可以了,代码如下:
drl文件:
java代码:
规则条件编写如下:
$dateInputBox : DateInputBox(verifyDate > "12-Oct-2005")
日期设置如下:
DateFormat df = new SimpleDateFormat("dd-mmm-yyyy",Locale.US);
String s = df.format(new Date());
dateInputBox.setVerifyDate(df.parse(s));
不知道为什么就出现Exception,内容如下:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid date input format: [12-Oct-2005] it should follow: [dd-MMM-yyyy] at org.drools.base.evaluators.DateFactory.parseDate(DateFactory.java:526) at org.drools.base.evaluators.DateFactory.getRightDate(DateFactory.java:536) at org.drools.base.evaluators.DateFactory.access$400(DateFactory.java:46) at org.drools.base.evaluators.DateFactory$DateGreaterEvaluator.evaluate(DateFactory.java:389) at org.drools.rule.LiteralRestriction.isAllowed(LiteralRestriction.java:62) at org.drools.rule.LiteralConstraint.isAllowed(LiteralConstraint.java:81) at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318) at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162) at org.drools.reteoo.Rete.assertObject(Rete.java:175) at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192) at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684) at com.shonetown.common.drools.DroolsTemplate.assertObject(DroolsTemplate.java:85) at com.shonetown.common.drools.DroolsTemplate.getWorkingMemory(DroolsTemplate.java:58) at com.shonetown.common.drools.service.DateInputBoxService.startRule(DateInputBoxService.java:13) at com.shonetown.common.drools.ComponentDroolsServiceProxy.startDateInputBoxDrools(ComponentDroolsServiceProxy.java:58) at com.shonetown.common.drools.ComponentDroolsServiceProxy.startComponentDrools(ComponentDroolsServiceProxy.java:49) at com.shonetown.common.drools.ComponentDroolsServiceProxy.<init>(ComponentDroolsServiceProxy.java:36) at com.shonetown.common.drools.ComponentDroolsServiceImpl.<init>(ComponentDroolsServiceImpl.java:31) at com.shonetown.common.drools.ComponentDroolsServiceImpl.main(ComponentDroolsServiceImpl.java:61)
不知道有谁有经验的,帮忙说明下!
后来我通过设置drools.dateformat,让系统支持dd-MM-yyyy,这样就可以了,代码如下:
drl文件:
$dateInputBox : DateInputBox(verifyDate > "12-12-2005")
java代码:
String format = "dd-MM-yyyy";
System.setProperty("drools.dateformat", format);
DateFormat df = new SimpleDateFormat(format);
dateInputBox.setVerifyDate(df.parse("12-12-2008"));
发表评论
- 浏览: 329 次
- 性别:

- 来自: 厦门

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
dom 生成xml文件的问题, ...
有人遇到过吗?
-- by aimer311 -
找工作,在51job和chinah ...
来上海10天,总算找到工作了。还有一家让我过去复试就推了,因为觉得目前的工作还可 ...
-- by aimer311 -
找工作,在51job和chinah ...
我女朋友是51job的,那里简历太多很容易给埋没了,个人觉得还是去公司网站上面投 ...
-- by ilovephll -
找工作,在51job和chinah ...
呵呵 今天刚刚开始找工作 试试了 不是卖不出去 有机会就抓一下咯
-- by spyker -
找工作,在51job和chinah ...
spyker 写道kiki 写道楼主在上海吗?还在找工作?把简历发给我吧.wuj ...
-- by jiyanliang






评论排行榜