Spring 专题
专题目录
您的位置:java > Spring专题 > 测试 Spring EL与ExpressionParser
测试 Spring EL与ExpressionParser
作者:--    发布时间:2019-11-20
spring表达式语言(spel)支持多种功能,并且可以测试这个特殊的“expressionparser”接口的表达式功能。
下面是两个代码片段,展示了使用 spring el 的基本用法。
使用spel来计算评估文字字符串表达式。
expressionparser parser = new spelexpressionparser();
expression exp = parser.parseexpression("'put spel expression here'");
string msg = exp.getvalue(string.class); 

使用spel来计算评估 bean 属性 – “item.name”.

item item = new item("h3", 100);
standardevaluationcontext itemcontext = new standardevaluationcontext(item);
		
//display the value of item.name property
expression exp = parser.parseexpression("name");
string msg = exp.getvalue(itemcontext, string.class);
举几个例子来测试使用spel。这些代码和注释应该是自我探索。
import org.springframework.expression.expression;
import org.springframework.expression.expressionparser;
import org.springframework.expression.spel.standard.spelexpressionparser;
import org.springframework.expression.spel.support.standardevaluationcontext;

public class app {
	public static void main(string[] args) {
		
		expressionparser parser = new spelexpressionparser();
		
		//literal expressions 
		expression exp = parser.parseexpression("'hello world'");
		string msg1 = exp.getvalue(string.class);
		system.out.println(msg1);
		
		//method invocation
		expression exp2 = parser.parseexpression("'hello world'.length()");  
		int msg2 = (integer) exp2.getvalue();
		system.out.println(msg2);
		
		//mathematical operators
		expression exp3 = parser.parseexpression("100 * 2");  
		int msg3 = (integer) exp3.getvalue();
		system.out.println(msg3);
		
		//create an item object
		item item = new item("h3", 100);
		//test el with item object
		standardevaluationcontext itemcontext = new standardevaluationcontext(item);
		
		//display the value of item.name property
		expression exp4 = parser.parseexpression("name");
		string msg4 = exp4.getvalue(itemcontext, string.class);
		system.out.println(msg4);
		
		//test if item.name == 'h3'
		expression exp5 = parser.parseexpression("name == 'h3'");
		boolean msg5 = exp5.getvalue(itemcontext, boolean.class);
		system.out.println(msg5);
		
	}
}
public class item {

	private string name;

	private int qty;

	public item(string name, int qty) {
		super();
		this.name = name;
		this.qty = qty;
	}

	//...
}

输出结果

hello world
11
200
h3
true



本文展示了spring表达式解析器的一些基本用法,访问官方spring表达文档,使用spel的例子。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册