篇首语:本文由小编为大家整理,主要介绍了JexlEngine的学习相关的知识,希望对你有一定的参考价值。
使用commons的jexl可实现将字符串变成可执行代码的功能
例子(来源:http://wiselyman.iteye.com/blog/1677444)
Java代码
import java.util.Map;
import org.apache.commons.jexl2.Expression;
import org.apache.commons.jexl2.JexlContext;
import org.apache.commons.jexl2.JexlEngine;
import org.apache.commons.jexl2.MapContext;
public class DyMethodUtil {
public static Object invokeMethod(String jexlExp,Map
JexlEngine jexl=new JexlEngine();
Expression e = jexl.createExpression(jexlExp);
JexlContext jc = new MapContext();
for(String key:map.keySet()){
jc.set(key, map.get(key));
}
if(null==e.evaluate(jc)){
return "";
}
return e.evaluate(jc);
}
}
调用方式:
Java代码
Map
map.put("testService",testService);
map.put("person",person);
String expression="testService.save(person)";
- DyMethodUtil.invokeMethod(expression,map);
以上是关于JexlEngine的学习的主要内容,如果未能解决你的问题,请参考以下文章