2017-02-23 11 views
0

私はfreemarkerをデータベースのテンプレートで使いたいです。テンプレートが時々変わる。テンプレート名をとり、データベースから現在のテンプレートを返すFunction<String, String>を作成したいと思います。Freemarker:カスタム関数を使用してテンプレートをリロードする

freemarkerはx分後にテンプレートが古くなったとみなし、新しいバージョンのテンプレートが必要になるたびに関数を呼び出すことができますか?あるいは、他のテンプレートがそのような機能をボックスの外に提供しているのでしょうか?

答えて

1

template_update_delay、またはJava API Configuration.setTemplateUpdateDelayMilliseconds(long)という設定があります。これは、FreeMarkerがテンプレートキャッシュエントリが古くなっているかどうかをチェックする頻度を決定します。 (テンプレートを必要とし、そのキャッシュエントリはそれより古くなっているときにのみ行います)。私はあなたがそれに頼るべきだと思います。

テンプレートの変更について通知された場合は、Configuration.removeTemplateFromCacheもあります。

+0

と、新しいテンプレートを読み込むたびにトリガーされるテンプレートサプライヤー関数をプラグインする方法はありますか?唯一の方法は、カスタムテンプレートローダーを提供することです? – piotrek

+0

はい、それはカスタム 'TemplateLoader'で行います。 – ddekany

関連する問題