MVEL 表达式编译与执行测试
项目结构

基础表达式测试
测试 inputEntry 标签中的执行匹配的 MVEL 表达式其实就是我们代码的编辑表达式。
// 编译表达式
Serializable compiledExpression = MVEL.compileExpression("person.age >= 18");
Map<String, Object> vars = new HashMap<String, Object>();
Person p = new Person();
p.setAge(19);
vars.put("person", p);
// 执行表达式并返回结果
Boolean result = MVEL.executeExpression(compiledExpression, vars, Boolean.class);
System.out.println(result);
自定义函数测试
可以通过反射将自定义方法导入给 MVEL 表达式使用。
// 自定义 MVEL 表达式函数 fn_test
public static void customMVELFn() {
Method m = getMethod(MvelTest.class, "testMethod", String.class, Integer.class);
ParserContext parserContext = new ParserContext();
parserContext.addImport("fn_test", m);
Serializable compiledExpression MVEL.compileExpression(, parserContext);
MVEL.executeExpression(compiledExpression, , String.class);
System.out.println(result);
}
String {
+ name + + age;
}
Method {
{
classRef.getMethod(methodName, methodParm);
} (NoSuchMethodException e) {
e.printStackTrace();
}
;
}

