Sample sample = new Sample();
ExpressionParser parser = new SpelExpressionParser();
EvaluationContext context = new StandardEvaluationContext(sample);
Expression exp;
//判斷對象或字符串是否為NULL
exp = parser.parseExpression("id!=null");
boolean result = exp.getValue(sample, Boolean.class);
boolean result = exp.getValue(context, Boolean.class);
//判斷字符串不為空(去除空格) ?的作用是為了防止空指針異常
exp = parser.parseExpression("name?.trim()?.length() > 0");
boolean result = exp.getValue(sample, Boolean.class);
boolean result = exp.getValue(context, Boolean.class);
//使用正則表達式
exp = parser.parseExpression("mail != null && (mail matches '^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$')");
boolean result = exp.getValue(sample, Boolean.class);
boolean result = exp.getValue(context, Boolean.class);
//判斷集合不為空
exp = parser.parseExpression("list?.size()>0");
boolean result = exp.getValue(sample, Boolean.class);
boolean result = exp.getValue(context, Boolean.class);
//查找集合中ID大於1的數據,無數據賦值null ?:三目運算符簡寫
exp = parser.parseExpression("list?.?[id>1]?:null");
List<Sample> result = exp.getValue(sample,List.class);
List<Sample> result = exp.getValue(context,List.class);
#root代表根節點通常是可以省略。#root.name==>name