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