使用表达式语言获取值

To use expression language to get values

我的表达是:#age*10 并且我给 age 赋值 15.6 这样的结果是156.0 其实我最后想要得到的结果是:156

我在代码中可以做到,但是如何通过修改表达式来做到。

谢谢

您需要使用Integer.class如下图:

import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class Demo {
    public static void main(String[] args) {
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();
        Double age = 15.6;
        context.setVariable("age", age);
        Expression exp = parser.parseExpression("#age*10");
        int result = exp.getValue(context, Integer.class);
        System.out.println(result);
    }
}

输出:

156