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);
}