/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-16 19:14:39
* Apache Commons JEXL 测试
*/
public static void main(String[] args) {
JexlEngine engine = new JexlEngine();
JexlContext context = new MapContext();
// String [] args= {"System.out.println('简单的测试!');"};
engine.c
Interpreter interpreter = engine.createInterpreter(context);
// interpreter.interpret(this.script);
String[] expressions = new String[]{
//嵌套属性
"tom.owner",
//嵌套属性
"tom.owner.name",
//嵌套属性的方法调用,表达式求值结果为方法返回值
"tom.owner.name.length()",
"array[0].toUpperCase()",
//内置通用方法size(),返回String,Map和List的长度
"size(tom.owner.name)"
//返回列表中第一个元素
};
Cat cat = new Cat();
cat.setName("yangshengxiang");
cat.setAge(100);
context.set("cat", cat);
//
args = new String[1];
args[0]= "F:\\mbrProgram\\mbrworkshop\\mbrlib\\runtime\\jexl2.0\\tsjexl.txt";
context.set("args",args);
if (args.length == 1) {
Script script;
try {
script = engine.createScript(new File(args[0]));
Object value = script.execute(context);
System.out.println("Return value: " + value);
} catch (IOException e) {
e.printStackTrace();
}
} else {
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
System.out.print("> ");
try {
String line = null;// console.readLine();
while (null != (line = console.readLine())) {
try { Expression expression = engine.createExpression(line);
Object value = expression.evaluate(context);
System.out.println("Return value: " + value);
} catch (JexlException e) {
System.out.println(e.getLocalizedMessage());
}
System.out.print("> ");
}
} catch (IOException e) {
e.printStackTrace();
}
}
//
}