Comment remplacer un espace réservé dans une chaîne avec un modèle SimpleDateFormat

Dans une Chaîne comme ceci

".../uploads/${customer}/${dateTime('yyyyMMdd')}/report.pdf"

J'ai besoin de remplacer un customer et un yyyyMMdd timestamp.

Pour remplacer le customer espace réservé, je pourrais utiliser le StrSubstitutor de Apache Commons. Mais comment remplacer le SimpleDateFormat? Nous sommes en cours d'exécution, au Printemps de enviourment, alors peut-être Spring EL est une option?

Le balisage pour les espaces réservés n'est pas fixe, c'est ok, si une autre bibliothèque de syntaxe change.

Ce petit tests montre le problème:

SimpleDateFormat            formatter   = new SimpleDateFormat("yyyyMMdd");

String                      template    = ".../uploads/${customer}/${dateTime('yyyyMMdd')}/report.pdf";

@Test
public void shouldResolvePlaceholder()
{
    final Map<String, String> model = new HashMap<String, String>();
    model.put("customer", "Mr. Foobar");

    final String filledTemplate = StrSubstitutor.replace(this.template, model);

    assertEquals(".../uploads/Mr. Foobar/" + this.formatter.format(new Date()) + "/report.pdf", filledTemplate);
}

source d'informationauteur d0x