- Spring SpEL - Home
- Spring SpEL - Overview
- Spring SpEL - Environment Setup
- Spring SpEL - Create Project
- Spring SpEL - Literal Expression
- Spring SpEL - Properties
- Spring SpEL - Array
- Spring SpEL - List
- Spring SpEL - Map
- Spring SpEL - Methods
- Spring SpEL - Relational Operators
- Spring SpEL - Logical Operators
- Spring SpEL - Mathematical Operators
- Spring SpEL - Assignment Operator
- Spring SpEL - Constructor
- Spring SpEL - Variables
- Spring SpEL - Functions
- Spring SpEL - Expression Templating
Spring SpEL Expression Evaluation
Spring SpEL Bean Configuration
Spring SpEL Language Reference
Spring SpEL Operators
Spring SpEL Special Operators
Spring SpEL Collections
Spring SpEL Other Features
Spring SpEL - Useful Resources
Spring SpEL - List
SpEL expression supports accessing list and using their indexes of an list of an object.
We can access nested lists as well within an SpEL expression.
Following example shows the various use cases.
Example - Usage of lists in SpEL
Let's update the project created in Spring SpEL - Create Project chapter. We're adding/updating following files −
Employee.java − Employee class.
Dept.java − Department class.
MainApp.java − Main application to run and test.
Employee.java
Here is the content of Employee.java file −
package com.tutorialspoint;
import java.util.List;
public class Employee {
private List<String> awards;
public List<String> getAwards() {
return awards;
}
public void setAwards(List<String> awards) {
this.awards = awards;
}
}
Dept.java
Here is the content of Dept.java file −
package com.tutorialspoint;
import java.util.List;
public class Dept {
private List<Employee> employees;
public List<Employee> getEmployees() {
return employees;
}
public void setEmployees(List<Employee> employees) {
this.employees = employees;
}
}
MainApp.java
Here is the content of MainApp.java file −
package com.tutorialspoint;
import java.text.ParseException;
import java.util.Arrays;
import org.springframework.expression.EvaluationContext;
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) throws ParseException {
ExpressionParser parser = new SpelExpressionParser();
Employee employee = new Employee();
employee.setAwards(Arrays.asList("Star of the Month", "Champion", "Accelerator"));
Dept dept = new Dept();
dept.setEmployees(Arrays.asList(employee));
EvaluationContext employeeContext = new StandardEvaluationContext(employee);
// evaluates to "Accelerator"
String award = parser.parseExpression("awards.get(2)").getValue(employeeContext, String.class);
System.out.println(award);
EvaluationContext deptContext = new StandardEvaluationContext(dept);
// evaluates to "Champion"
award = parser.parseExpression("employees.get(0).awards.get(1)").getValue(deptContext, String.class);
System.out.println(award);
}
}
Output
Once you are done creating the source and bean configuration files, let us run the application. If everything is fine with your application, it will print the following message −
Accelerator Champion
Advertisements