Grails アプリで html テンプレートを使用しようとしています。URL が与えられ、実行時に HTML を Grails ビューに動的にロードする必要があります。HTML コード内には、Grails コードが挿入される {title} タグと {content} タグがあります。
PHP では include("url"); のようになります。Grails でこれを行うにはどうすればよいでしょうか。
キャッシュせず、実際のテンプレート ソリューションを使用しない場合、コードは次のようになります。
def template = new Url('http://example.com').getText()
def html
html = html.replaceAll('{title}','my Title')
html = html.replaceAll('{content}','my Content')
しかし、Raphael は完全に正しいです。より洗練されたソリューションが必要な場合は、groovy テンプレート フレームワーク ( http://groovy.codehaus.org/Groovy+Templates ) を調べてください。
テンプレート フレームワークでは、最初にテンプレートを準備します。
import groovy.text.SimpleTemplateEngine
def template = new Url('http://example.com').getText()
template = template.replaceAll('{title}','${title}')
template = tamplate.replaceAll('{content}','${content}')
キャッシュとしてデータベースに保存します。HTML ページを大きくする必要がある場合は、テンプレートをフェッチして、groovy にプレースホルダーを置き換えさせます。
def binding = [title:"my Title", content:"my Content"]
def engine = new SimpleTemplateEngine()
html = engine.createTemplate(template).make(binding)
それでおしまい。