- 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
广告