ユーザーが編集できる記事をデータベースに保存します。ユーザーは、いくつかの簡単なウィジェットを記事(グラフなど)に挿入できます。これまでのところ、ユーザーが[graph-1]のようなグラフを挿入し、文字列の検索と置換を行うことで、概念実証としてこれを実装しました。
文字列からテンプレートを呼び出すより効率的な方法があるかどうか疑問に思いましたか?たぶんSitemeshを巻き込んでいますか?
テンプレートと変数を含むバインディングマップを取得し、それを文字列にレンダリングするコードのサンプルを次に示します。
import groovy.text.SimpleTemplateEngine
def engine = new SimpleTemplateEngine()
String templateContent = 'hello ${name}'
def binding = [name: 'world']
String rendered = engine.createTemplate(templateContent).make(binding).toString()
ハードコードされた「templateContent」をデータベースの文字列に置き換え、そのテンプレートに適したデータをバインディングマップに入力するだけです。