English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعبير SPEL لـ Spring

SpEL هي لغة تعبيري محدثة، تدعم الاستعلام والتعامل مع شجرة الأهداف في الوقت الفعلي.

هناك العديد من لغات التعبير المتاحة، مثل JSP EL، OGNL، MVEL و JBoss EL. يقدم SpEL بعض الوظائف الإضافية مثل دعوات الدوال ووظائف قوالب النصوص.

API SpEL

يقدم API SpEL العديد من الواجهات والفئات. وهي كالتالي:

واجهة Expression فئة SpELExpression واجهة ExpressionParser فئة SpelExpressionParser واجهة EvaluationContext فئة StandardEvaluationContext

مثال Hello SPEL

import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
public class Test {
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Hello SPEL'");
String message = (String) exp.getValue();
System.out.println(message);
//OR
//System.out.println(parser.parseExpression("'Hello SPEL'").getValue());
}
}

أمثلة SPEL أخرى

لنرى العديد من أمثلة SPEL المفيدة. هنا، نفترض أن جميع الأمثلة مكتوبة داخل دالة main().

استخدام دالة concat() مع String

ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Welcome SPEL'.concat('!')");
String message = (String) exp.getValue();
System.out.println(message);

تحويل النص إلى مجموعة من البايتات

تعبير exp = parser.parseExpression("'Hello World'.bytes");
byte[] bytes = (byte[]) exp.getValue();
for(int i=0;i<bytes.length;i++){
    System.out.print(bytes[i]+" ");
}

تحويل السلسلة إلى بيانات حروفية وتحديد طولها

Expression exp = parser.parseExpression("'Hello World'.bytes.length");
int length = (Integer) exp.getValue();
System.out.println(length);

تحويل محتويات السلسلة إلى أحرف كبيرة

Expression exp = parser.parseExpression("new String('hello world').toUpperCase()");
String message = exp.getValue(String.class);
System.out.println(message);
//OR
System.out.println(parser.parseExpression("'hello world'.toUpperCase()").getValue());