SnEL 模板表达式的语法说明与应用
1、SnEL 模板接口说明
接口 | 描述 |
---|---|
SnEL.parseTmpl(...) | 解析模板表达式 |
SnEL.evalTmpl(...) | 执行模板表达式 |
模板占位符说明
接口 | 描述 |
---|---|
#{...} | 求值表达式占位符(内部为一个求值表达式) |
${..} 或 ${...:def} | 属性表达式占位符 |
${ }
(属性表达式会从 PropertiesGuidance
接口优先获取。如果没有?再以 key
方式从 context
获取)
2、模板表达式应用
Map<String, Object> data = new HashMap<>();
data.put("a", 1);
data.put("b", 1);
SnEL.evalTmpl("a val is #{a}");
SnEL.evalTmpl("sum val is #{a + b}");
3、带属性的模板表达式应用
Map<String, Object> data = new HashMap<>();
data.put("a", 1);
data.put("b", 1);
EnhanceContext context = new EnhanceContext(data);
context.forProperties(Solon.cfg()); //绑定应用属性,支持 ${表过式}
SnEL.evalTmpl("sum val is #{a + b}, c prop is ${demo.c:c}");