”;
EvaluationContext is an interface of Spring SpEL which helps to execute an expression string in a context. References are resolved in this context when encountered during expression evaluation.
Syntax
Following is an example of creating an EvaluationContext and using its object to get a value.
ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpression("''name''"); EvaluationContext context = new StandardEvaluationContext(employee); String name = (String) exp.getValue();
It should print the result as follows:
Mahesh
Here the result is the value of the name field of the employee object, Mahesh. The StandardEvaluationContext class specifies the object against which the expression is evaluated. StandardEvaluationContext cannot be changed once context object is created. It caches the state and allows expression evaluation to be performed quickly. Following example shows the various usecases.
Example
The following example shows a class MainApp.
Let”s update the project created in Spring SpEL – Create Project chapter. We”re adding following files −
-
Employee.java − Employee class.
-
MainApp.java − Main application to run and test.
Here is the content of Employee.java file −
package com.tutorialspoint; public class Employee { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Here is the content of MainApp.java file −
package com.tutorialspoint; import org.springframework.expression.EvaluationContext; 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 MainApp { public static void main(String[] args) { Employee employee = new Employee(); employee.setId(1); employee.setName("Mahesh"); ExpressionParser parser = new SpelExpressionParser(); EvaluationContext context = new StandardEvaluationContext(employee); Expression exp = parser.parseExpression("name"); // evaluate object using context String name = (String) exp.getValue(context); System.out.println(name); Employee employee1 = new Employee(); employee1.setId(2); employee1.setName("Rita"); // evaluate object directly name = (String) exp.getValue(employee1); System.out.println(name); exp = parser.parseExpression("id > 1"); // evaluate object using context boolean result = exp.getValue(context, Boolean.class); System.out.println(result); // evaluates to false result = exp.getValue(employee1, Boolean.class); System.out.println(result); // evaluates to true } }
Output
Mahesh Rita false true
”;