Pregunta

Estoy buscando un motor de plantillas agradable o pequeño fragmento de código para expandir las variables como hormigas en una cadena en Java. Ejemplo:

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

Debe al menos java.util.Map apoyo, sino algo que se puede manejar frijoles o búsquedas recursivas o las búsquedas en una lista de mapas / objetos sería bienvenido, también.

Sugerencias?

[Editar] en respuesta a TofuBeer: No, identificadores Java válidas sólo dentro de la anidación {}. Cualquier cosa fuera de ${} se debe copiar palabra por palabra. $$ debe convertirse en $``. If that's not possible ${dollar} debe ampliar a un solo $ (por lo que puede expresar 15.00 $).

¿Fue útil?

Solución

StrSubstitutor de Commons Lang hace bastante más de lo que está pidiendo

Otros consejos

StringTemplate con el fin de poner en práctica 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();
} 

Tener un vistazo a Freemarker velocidad och, ambos son motores de plantilla

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top