在做工作流時需要用到條件判斷,比如開始條件,結束條件,轉移條件,這些條件如果用java代碼來寫會比較方便
通過bsh可以對java代碼片段進行解析得到結果
bsh不僅僅能處理簡單的邏輯表達式,一些合法的java代碼片段都能處理,比如一些方法的聲明類的聲明,有待于研究
可以從 http://www.beanshell.org 下載最新的jar包,就一個jar包加入到你的classpath下就可以使用了。


測試代碼:
 1 package org.wanghc.test;
 2 
 3 import bsh.EvalError;
 4 import bsh.Interpreter;
 5 
 6 /**
 7  * bsh測試,bsh可以解析java代碼,可用于流程中規則的一些邏輯判斷
 8  * 或者我們寫一些偽碼:
 9  * 比如
10  * a==1 and b=="c" or c>d
11  *  
12  * @author wanghc
13  * @created 2007-5-12
14  */
15 public class BshTest {
16 
17     /**
18      * @param args
19      */
20     public static void main(String[] args) {
21         // TODO Auto-generated method stub
22         Interpreter bsh = new Interpreter();
23         try {
24             bsh.set("orderStatus""send");
25             Object obj = bsh.eval("orderStatus == \"send\" && 1>0");
26             
27             System.out.println(obj);
28         } catch (EvalError e) {
29             // TODO Auto-generated catch block
30             e.printStackTrace();
31         }
32     }
33 
34 }
35