Spring EL表达式解析

注入单一对象

/**
* 注入单一对象
*
* @param expr #{user.id}.#{user.name}.#{user.tel}
* @param data
* @return
*/
public static String readExpr(String expr, Object data) {
    ExpressionParser parser = new SpelExpressionParser();
    Expression expression = parser.parseExpression(expr, new TemplateParserContext());
    return expression.getValue(data, String.class);
}

注入多个变量

/**
* 注入多个变量
*
* @param expr #{#shopId}.#{#typeId}.#{#paging.page}
* @param map
* @return
*/
public static String readExpr(String expr, Map<String, Object> map) {
 
    ExpressionParser parser = new SpelExpressionParser();
    Expression expression = parser.parseExpression(expr, new TemplateParserContext());
 
    EvaluationContext context = new StandardEvaluationContext();
 
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        context.setVariable(entry.getKey(), entry.getValue());
    }
 
    return expression.getValue(context, String.class);
}

你可能感兴趣的:(Java,Java,>,Spring)