- Spring SpEL 教程
- Spring SpEL - 首頁
- Spring SpEL - 概述
- Spring SpEL - 環境搭建
- Spring SpEL - 建立專案
- 表示式評估
- Spring SpEL - 表示式介面
- Spring SpEL - EvaluationContext
- Bean 配置
- Spring SpEL - XML 配置
- Spring SpEL - 註解配置
- 語言參考
- Spring SpEL - 字面量表達式
- Spring SpEL - 屬性
- Spring SpEL - 陣列
- Spring SpEL - 列表
- Spring SpEL - 對映
- Spring SpEL - 方法
- 運算子
- Spring SpEL - 關係運算符
- Spring SpEL - 邏輯運算子
- Spring SpEL - 數學運算子
- Spring SpEL - 賦值運算子
- 特殊運算子
- Spring SpEL - 三元運算子
- Spring SpEL - Elvis 運算子
- Spring SpEL - 安全導航運算子
- 集合
- Spring SpEL - 集合選擇
- Spring SpEL - 集合投影
- 其他特性
- Spring SpEL - 構造器
- Spring SpEL - 變數
- Spring SpEL - 函式
- Spring SpEL - 表示式模板
- Spring SpEL - 有用資源
- Spring SpEL - 快速指南
- Spring SpEL - 有用資源
- Spring SpEL - 討論
Spring SpEL - 集合選擇
SpEL 表示式支援集合選擇,這是一種非常強大的表示式,允許透過從源集合中選擇條目來將源集合轉換為另一個集合。
語法
?[selectionExpresion]
以下示例顯示了用法。
List<Employee> list = (List<Employee>)
parser.parseExpression("employees.?[country == 'USA']").getValue(deptContext);
這裡 SpEL 將只返回員工列表中國家為美國的員工。
以下示例顯示了各種用例。
示例
讓我們更新在Spring SpEL - 建立專案章節中建立的專案。我們新增/更新以下檔案:
Employee.java - 員工類。
Dept.java - 部門類。
MainApp.java - 執行和測試的主要應用程式。
以下是Employee.java檔案的內容:
package com.tutorialspoint;
public class Employee {
private String name;
private String country;
public Employee(String name, String country) {
this.name = name;
this.country = country;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String toString() {
return "[" +name+ ", "+country + "]";
}
}
以下是Dept.java檔案的內容:
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檔案的內容:
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;
public class MainApp {
public static void main(String[] args) throws ParseException {
ExpressionParser parser = new SpelExpressionParser();
Employee employee1 = new Employee("Robert", "USA");
Employee employee2 = new Employee("Julie", "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 list of employees who are living in USA
List<Employee> list = (List<Employee>)
parser.parseExpression("employees.?[country == 'USA']").getValue(deptContext);
System.out.println(list);
}
}
輸出
[[Robert, USA], [Julie, USA]]
廣告