我正在寻找一个不错的模板引擎或一小段代码来扩展 Java 字符串中类似 Ant 的变量。例子:

String result = expand ("${firstName} ${familyName}", map);

至少应该支持 java.util.Map 但是可以处理 bean 或递归查找或映射/对象列表中的查找的东西也将受到欢迎。

建议?

[编辑]回复豆腐啤酒:没有嵌套,只有有效的 Java 标识符 {}. 。任何之外的东西 ${} 应逐字复制。 $$ 应该成为 $``. If that's not possible ${dollar} 应该扩展到单个 $ (这样你就可以表达 15.00 $).

有帮助吗?

解决方案

替代者康芒斯朗 几乎可以满足您的要求

其他提示

使用 StringTemplate的为了实现expand

void expand(String template, Map<String,String> map) {
    StringTemplate st = new StringTemplate(template);

    for (Map.Entry<String, String> attribute : map) {
       st.setAttribute(attribute.getKey(), attribute.getValue());
    }

    return st.toString();
} 

看一看的Freemarker OCH速度,两者都是模板引擎

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top