Spring SpEL Tutorial
Selected Reading
- Spring SpEL - Discussion
- Spring SpEL - Useful Resources
- Spring SpEL - Quick Guide
- Spring SpEL - Expression Templating
- Spring SpEL - Functions
- Spring SpEL - Variables
- Spring SpEL - Constructor
- Spring SpEL - Collection Projection
- Spring SpEL - Collection Selection
- Spring SpEL - Safe Navigation Operator
- Spring SpEL - Elvis Operator
- Spring SpEL - Ternary Operator
- Spring SpEL - Assignment Operator
- Spring SpEL - Mathematical Operators
- Spring SpEL - Logical Operators
- Spring SpEL - Relational Operators
- Spring SpEL - Methods
- Spring SpEL - Map
- Spring SpEL - List
- Spring SpEL - Array
- Spring SpEL - Properties
- Spring SpEL - Literal Expression
- Spring SpEL - Annotation Configuration
- Spring SpEL - XML Configuration
- Spring SpEL - EvaluationContext
- Spring SpEL - Expression Interface
- Spring SpEL - Create Project
- Spring SpEL - Environment Setup
- Spring SpEL - Overview
- Spring SpEL - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Spring SpEL - Collection Selection
Spring SpEL - Collection Selection
SpEL expression supports Collection Selection which is a very powerful expression allowing to transform source collection into another by selecting the entries from the source collection.
Syntax
?[selectionExpresion]
Following example shows the usage.
List<Employee> pst = (List<Employee>) parser.parseExpression("employees.?[country == USA ]").getValue(deptContext);
Here SpEL will return only those employees from the pst of employees whose country is USA.
Following example shows the various use cases.
Example
Let s update the project created in
chapter. We re adding/updating following files −Employee.java − Employee class.
Dept.java − Department class.
MainApp.java − Main apppcation to run and test.
Here is the content of Employee.java file −
package com.tutorialspoint; pubpc class Employee { private String name; private String country; pubpc Employee(String name, String country) { this.name = name; this.country = country; } pubpc String getName() { return name; } pubpc void setName(String name) { this.name = name; } pubpc String getCountry() { return country; } pubpc void setCountry(String country) { this.country = country; } pubpc String toString() { return "[" +name+ ", "+country + "]"; } }
Here is the content of Dept.java file −
package com.tutorialspoint; import java.util.List; pubpc class Dept { private List<Employee> employees; pubpc List<Employee> getEmployees() { return employees; } pubpc void setEmployees(List<Employee> employees) { this.employees = employees; } }
Here is the content of MainApp.java file −
package com.tutorialspoint; import java.text.ParseException; import java.util.ArrayList; import java.util.List; import org.springframework.expression.EvaluationContext; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; pubpc class MainApp { pubpc static void main(String[] args) throws ParseException { ExpressionParser parser = new SpelExpressionParser(); Employee employee1 = new Employee("Robert", "USA"); Employee employee2 = new Employee("Jupe", "USA"); Employee employee3 = new Employee("Ramesh", "India"); List<Employee> employees = new ArrayList<Employee>(); employees.add(employee1); employees.add(employee2); employees.add(employee3); Dept dept = new Dept(); dept.setEmployees(employees); EvaluationContext deptContext = new StandardEvaluationContext(dept); // Select pst of employees who are pving in USA List<Employee> pst = (List<Employee>) parser.parseExpression("employees.?[country == USA ]").getValue(deptContext); System.out.println(pst); } }
Output
[[Robert, USA], [Jupe, USA]]Advertisements