Domanda

sto cercando un bel motore di template o corto pezzo di codice per espandere le variabili Ant-come in una stringa in Java. Esempio:

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

Si dovrebbe almeno sostegno java.util.Map ma qualcosa in grado di gestire fagioli o ricerche ricorsive o le ricerche in un elenco di mappe / oggetti sarebbe il benvenuto, anche.

Suggerimenti?

[EDIT] In risposta a TofuBeer: Nessun nidificazione, identificatori Java soltanto validi sul {}. Tutto ciò al di fuori di ${} deve essere copiato parola per parola. $$ dovrebbe diventare $``. If that's not possible ${dollar} dovrebbe espandersi ad un unico $ (in modo da poter esprimere 15.00 $).

È stato utile?

Soluzione

StrSubstitutor da Commons Lang fa più o meno quello che stai chiedendo

Altri suggerimenti

StringTemplate al fine di attuare 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();
} 

Date un'occhiata al Freemarker och Velocity, entrambi sono i motori di template

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top