English 中文(简体)
Spring SpEL - List
  • 时间:2024-11-03

Spring SpEL - List


Previous Page Next Page  

SpEL expression supports accessing pst and using their indexes of an pst of an object.

    We can access nested psts 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 List<String> awards;
   pubpc List<String> getAwards() {
      return awards;
   }
   pubpc void setAwards(List<String> awards) {
      this.awards = awards;
   }
}

Here is the content of Dept.java file −


package com.tutorialspoint;

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.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;

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


Accelerator
Champion
Advertisements