2008-12-11 11 views
2

Est-il possible de contourner le cache Freemarker lorsque certains modèles sont demandés? Je me rends compte que je devrai probablement implémenter mon propre TemplateLoader pour faire ceci, mais même ainsi, je ne peux pas voir un moyen de vérifier le cache quand le modèle A est demandé, mais le contourner quand le modèle B est demandé?Ignorer la mise en cache FreeMarker?

Si ce n'est pas possible, je vais devoir désactiver complètement la mise en cache.

+0

Utilisez-vous freemarker directement ou par certains framework web? – krosenvold

Répondre

3

essayez de désactiver la mise en cache sur votre configuration:

configuration.setTemplateUpdateDelay(0); 

Cela devrait l'amener à vérifier une version plus récente d'un modèle à chaque fois qu'il est demandé.

Pour ignorer le cache pour certains modèles uniquement, vous devez seulement remplacer getLastModified pour renvoyer une date très ancienne pour certains modèles, ce qui oblige à recharger.

1

Vous devez définir cela sur l'objet de configuration lui-même. Voir this page pour plus de détails.

Pour votre problème, vous pouvez effectuer les opérations suivantes:

cfg.setSetting(Configuration.CACHE_STORAGE_KEY, "strong:0, soft:0");