在做工作流时需要用到条件判断,比如开始条件,结束条件,转移条件,这些条件如果用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