
- 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 表示式允許使用 `#variable-name` 語法建立和使用特定於表示式的變數。可以使用 `EvaluationContext` 的 `setVariable` 方法設定變數。此外,還有兩種內建變數:`#this` 和 `#root`。`#this` 變數始終引用當前求值物件,而 `#root` 變數則引用求值上下文的根物件。
語法
context.setVariable("newName", "Mahesh Kumar");
以下示例展示了各種用例。
示例
讓我們更新在Spring SpEL - 建立專案章節中建立的專案。我們將新增/更新以下檔案:
Employee.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 + "]"; } }
以下是MainApp.java檔案的內容:
package com.tutorialspoint; import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; 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 employee = new Employee("Mahesh", "INDIA"); EvaluationContext context = new StandardEvaluationContext(employee); context.setVariable("newName", "Mahesh Parashar"); parser.parseExpression("Name = #newName").getValue(context); // Evaluate to "Mahesh Parashar" System.out.println(employee.getName()); List<Integer> primes = new ArrayList<Integer>(); primes.addAll(Arrays.asList(2,3,5,7,11,13,17)); context.setVariable("primes",primes); List<Integer> filteredList = (List<Integer>) parser.parseExpression("#primes.?[#this>10]").getValue(context); // Evaluate to [11, 13, 17], prime numbers greater than 10 System.out.println(filteredList); } }
輸出
Mahesh Parashar [11, 13, 17]
廣告