工作中常常需要使用到String 模板,例如 Hello,#{user},用户名模板替换
Map<String,Object> paraMap=new HashMap<>();
paraMap.put("user","赵聪");
ExpressionParser parser = new SpelExpressionParser();
TemplateParserContext parserContext = new TemplateParserContext();
String content = parser.parseExpression("测试用户#{[user]}", parserContext).getValue(paraMap, String.class);
System.out.println("=========="+content);
输错结果
==========测试用户赵聪
还有另一种方式,但是表达式不一样,切记不一样,上代码
String greetingExp = "Hello, #{#user} ---> #{T(System).getProperty('user.home')}";
ExpressionParser parser = new SpelExpressionParser();
EvaluationContext context = new StandardEvaluationContext();
context.setVariable("user", "fsx");
Expression expression = parser.parseExpression(greetingExp, new
TemplateParserContext());
System.out.println(expression.getValue(context, String.class));