天天看点

第四天:Drools规则中文化

         我是五年前接触jrule ilog的,所以对于ilog开发的一套逻辑比较熟悉,对于drools中无论是语言还是执行过程中insert都感觉十分头疼,在所有头疼中最厉害的莫过于中文化,drools提供的中文化十分的在我看来十分的不方便,但作为开源软件也不便于批评什么。

         Drools使用DSL支持中文化(国际化),其本身是一个映射文件。在IDE中创建方式如下:

1.      创建DSL有两种方法

方案一:在IDE工具栏中选择“New Domain Specific Language”

第四天:Drools规则中文化

方案二:创建新元素“Domain Specific Language”

第四天:Drools规则中文化

2.      选择对应的规则包目录,一般来说一个规则包下对应一个dsl

第四天:Drools规则中文化

3.      选择是否包含一些模板,默认不包含

第四天:Drools规则中文化

4.      下图为IDE中dsl格式

第四天:Drools规则中文化

案例分析:

1) 纯用DRL写的原规则

第四天:Drools规则中文化

2) 添加dsl之后的文件

第四天:Drools规则中文化

3) 在DSL中转义如下

第四天:Drools规则中文化

其中:

Condition表示是条件中的转义

Consequence是那么中的转义

*是通用转义

4) 执行java中如下修改:

第四天:Drools规则中文化
第四天:Drools规则中文化

返回结果为:

第四天:Drools规则中文化

在6.2版本中使用中文化完全没有体现。

第四天:Drools规则中文化
第四天:Drools规则中文化

像这种情况也不会出现中文提示,关于6.2的这种情况还在研究中,但奇怪的是在6.1版本中通过dsl进行中文化就完全没有问题。

第四天:Drools规则中文化

对象多属性规则的另外一种书写方法:

第四天:Drools规则中文化

对应规则如下:

第四天:Drools规则中文化