天天看點

第四天: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規則中文化