使用java怎么解析像${value1==value2}这样的脚本语句?
遇到问题:
需要吧EL表达式中的 变量赋值并判断
public static void main(String[] args) {
String skipExpress="${value1==value2}";
Map map = new HashMap<>();
map.put("value1",1);
map.put("value2",1);
Boolean b = ExpressionParsingUtil.expressionParsing(skipExpress, map);
System.out.println(b);
}
public static Boolean expressionParsing(String skipExpress, Map map){
if (StringUtils.isBlank(skipExpress) && map.isEmpty()){
return false;
}
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
TemplateParserContext templateParserContext = new TemplateParserContext("${", "}");
MapAccessor propertyAccessor = new MapAccessor();
context.setVariables(map);
context.setPropertyAccessors(Arrays.asList(propertyAccessor));
SpelExpression expression = (SpelExpression) parser.parseExpression(skipExpress, templateParserContext);
expression.setEvaluationContext(context);
boolean value = expression.getValue(map,boolean.class);
return value;
}