Charge FreeMarker modèles à partir de la base de données

Je tiens à conserver ma FreeMarker modèles dans une table de base de données qui ressemble à quelque chose comme:

template_name | template_content
---------------------------------
hello         |Hello ${user}
goodbye       |So long ${user}

Lorsqu'une demande est reçue pour un modèle avec un nom particulier, ce qui devrait entraîner une requête à exécuter, qui charge de l'pertinentes modèle de contenu. Ce modèle de contenu, de concert avec le modèle de données (la valeur de l '"utilisateur" de la variable dans les exemples ci-dessus), doit ensuite être transmis à FreeMarker.

Cependant, la FreeMarker API semble supposer que chaque nom de modèle correspond à un fichier du même nom dans un répertoire particulier du système de fichiers. Est-il possible que je peux facilement avoir mes modèles chargé de la DB au lieu du système de fichiers?

EDIT: j'aurais dit que je voudrais être en mesure d'ajouter des modèles à la base de données pendant l'exécution de l'application, donc je ne peux pas il suffit de charger tous les modèles à démarrage dans une nouvelle StringTemplateLoader (comme suggéré ci-dessous).

Cheers,
Ne

InformationsquelleAutor Dónal | 2008-12-10