- 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 - 表示式介面
ExpressionParser 是 Spring SpEL 的主要介面,它有助於將表示式字串解析為已編譯的表示式。這些已編譯的表示式可以進行求值,並支援解析模板以及標準表示式字串。
語法
以下是如何建立一個 ExpressionParser 並使用其物件獲取值的示例。
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Welcome to Tutorialspoint'");
String message = (String) exp.getValue();
它應該列印如下結果:
Welcome to Tutorialspoint
ExpressionParser - 負責解析表示式字串的介面。
Expression - 負責求值表示式字串的介面。
異常 - ParseException 和 EvaluationException 可能會在 parseExpression 和 getValue 方法呼叫期間丟擲。
SpEL 支援呼叫方法、呼叫建構函式和訪問屬性。以下示例顯示了各種用例。
示例
以下示例顯示了一個名為 MainApp 的類。
讓我們更新在Spring SpEL - 建立專案章節中建立的專案。我們新增以下檔案:
MainApp.java - 執行和測試的主要應用程式。
以下是MainApp.java檔案的內容:
package com.tutorialspoint;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
public class MainApp {
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
// parse a plain text
Expression exp = parser.parseExpression("'Welcome to tutorialspoint'");
String message = (String) exp.getValue();
System.out.println(message);
// invoke a method
exp = parser.parseExpression("'Welcome to tutorialspoint'.concat('!')");
message = (String) exp.getValue();
System.out.println(message);
// get a property
exp = parser.parseExpression("'Welcome to tutorialspoint'.bytes");
byte[] bytes = (byte[]) exp.getValue();
System.out.println(bytes.length);
// get nested properties
exp = parser.parseExpression("'Welcome to tutorialspoint'.bytes.length");
int length = (Integer) exp.getValue();
System.out.println(length);
//Calling constructor
exp = parser.parseExpression("new String('Welcome to tutorialspoint').toUpperCase()");
message = (String) exp.getValue();
System.out.println(message);
}
}
輸出
Welcome to tutorialspoint Welcome to tutorialspoint! 25 25 WELCOME TO TUTORIALSPOINT
廣告