Вопрос

Я ищу хороший механизм шаблонов или короткий фрагмент кода для расширения Ant-подобных переменных в строке на Java.Пример:

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

Оно должно как минимум поддерживать java.util.Map но что-то, что может обрабатывать bean-компоненты, рекурсивный поиск или поиск в списке карт/объектов, также будет приветствоваться.

Предложения?

[EDIT] В ответ TofuBeer:Никакой вложенности, только действительные идентификаторы Java внутри {}.Что-либо за пределами ${} следует скопировать дословно. $$ должен стать $``. If that's not possible ${dollar} должен расшириться до одного $ (чтобы вы могли выразить 15.00 $).

Это было полезно?

Решение

StrSubstitutor от Коммонс Ланг делает почти то, о чем вы просите

Другие советы

использовать СтрокаШаблон чтобы реализовать 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 и Velocity, они оба являются шаблонизаторами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top