import javax.el.*; public class ExpressionLanguageExample { public static void main(String[] args) { ExpressionFactory factory = ExpressionFactory.newInstance(); ValueExpression expression = factory.createValueExpression( new ELContextImpl(), "${num1 + num2}", int.class); ELContextImpl context = (ELContextImpl) expression.getELContext(); context.setVariable("num1", factory.createValueExpression( context, "${5}", int.class)); context.setVariable("num2", factory.createValueExpression( context, "${10}", int.class)); int result = (int) expression.getValue(context); } } class ELContextImpl extends ELContext { private final VariableMapper variableMapper; public ELContextImpl() { this.variableMapper = new VariableMapperImpl(); } @Override public VariableMapper getVariableMapper() { return variableMapper; } } class VariableMapperImpl extends VariableMapper { private final Map<String, ValueExpression> variables = new HashMap<>(); public ValueExpression resolveVariable(String variable) { return variables.get(variable); } public ValueExpression setVariable(String variable, ValueExpression expression) { return variables.put(variable, expression); } }


上一篇:
下一篇:
切换中文