JEXL 是一个表达式语言引擎,可以在应用程序或框架中实现动态和脚本功能。先写一个简单的例子,最直观的感受下。
依赖
首先我们是引入依赖包,添加pom文件中的dependency
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jexl3</artifactId>
<version>3.1</version>
</dependency>
基础用法
再新建一个测试用的对象类
public class TestJexlObj {
private int numA;
private int numB;
//get.set方法省略
}
之后我们来写一份测试逻辑用的代码
@Test
public void test() {
TestJexlObj testObj = new TestJexlObj();
testObj.setNumA(12);
testObj.setNumB(9);
JexlEngine jexl = new Engine();
JexlExpression expression = jexl.createExpression("'numA is '+testObj.getNumA()+' numB is '+testObj.getNumB()");
JexlContext jc = new MapContext();
jc.set("testObj", testObj);
String str = String.valueOf(expression.evaluate(jc));
System.out.println(str);
JexlExpression expression2 = jexl.createExpression("'numA + numB = '+(testObj.getNumA()+testObj.getNumB())");
String str2 = String.valueOf(expression2.evaluate(jc));
System.out.println(str2);
}
执行后我们可以看到如下结果
以及一份多行构建java对象的表达式作为Script执行的示例代码
Continue reading