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