English 中文(简体)
Spring SpEL - Array
  • 时间:2024-09-17

Spring SpEL - Array


Previous Page Next Page  

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

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 apppcation to run and test.

Here is the content of Employee.java file −


package com.tutorialspoint;

pubpc class Employee {
   private String[] awards;
   pubpc String[] getAwards() {
      return awards;
   }
   pubpc void setAwards(String[] awards) {
      this.awards = awards;
   }
}

Here is the content of Dept.java file −


package com.tutorialspoint;

pubpc class Dept {
   private Employee[] employees;
   pubpc Employee[] getEmployees() {
      return employees;
   }
   pubpc void setEmployees(Employee[] employees) {
      this.employees = employees;
   }
}

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;

pubpc class MainApp {
   pubpc 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


Accelerator
Champion
Advertisements