- 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 - Arrays
SpEL expression supports accessing arrays and using their indexes of an array of an object.
We can access nested arrays as well within an SpEL expression.
Following example shows the various use cases.
Example - Usage of arrays 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;
public class Employee {
private String[] awards;
public String[] getAwards() {
return awards;
}
public void setAwards(String[] awards) {
this.awards = awards;
}
}
Dept.java
Here is the content of Dept.java file −
package com.tutorialspoint;
public class Dept {
private Employee[] employees;
public Employee[] getEmployees() {
return employees;
}
public void setEmployees(Employee[] employees) {
this.employees = employees;
}
}
MainApp.java
Here is the content of MainApp.java file −
package com.tutorialspoint;
import java.text.ParseException;
import java.text.SimpleDateFormat;
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();
String[] awards = {"Star of the Month", "Champion", "Accelerator"};
employee.setAwards(awards);
Employee[] employees = { employee };
Dept dept = new Dept();
dept.setEmployees(employees);
EvaluationContext employeeContext = new StandardEvaluationContext(employee);
// evaluates to "Accelerator"
String award = parser.parseExpression("awards[2]").getValue(employeeContext, String.class);
System.out.println(award);
EvaluationContext deptContext = new StandardEvaluationContext(dept);
// evaluates to "Champion"
award = parser.parseExpression("employees[0].awards[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