代码参考至工作流引擎之activiti利用juel进行条件分支判断
/**
* 计算boolean表达式的值
* @param expression 表达式
* @param varsMap 参数
* @return boolean值
*/
public boolean calculateExpression(String expression, Map<String, Object> varsMap) {
ExpressionFactory factory = new ExpressionFactoryImpl();
SimpleContext context = new SimpleContext();
for (Object k : varsMap.keySet()) {
if (varsMap.get(k) != null) {
context.setVariable(k.toString(), factory.createValueExpression(varsMap.get(k), varsMap.get(k).getClass()));
}
}
ValueExpression e = factory.createValueExpression(context, expression, Boolean.class);
return (Boolean) e.getValue(context);
}