2

我正在尝试使用带有 Grails 应用程序的 html 模板。我得到了一个 URL,需要在运行时将 html 动态加载到我的 Grails 视图中。在 HTML 代码中有一个 {title} 和一个 {content} 标记,我的 Grails 代码将被注入其中。

在 PHP 中,它类似于 include("url"); 现在我们如何在 Grails 中做到这一点,或者有可能吗?

4

1 回答 1

3

如果没有缓存,也没有真正诱人的解决方案,您的代码可能如下所示:

def template = new Url('http://example.com').getText()
def html
html = html.replaceAll('{title}','my Title')
html = html.replaceAll('{content}','my Content')

但 Raphael 绝对正确:如果您需要更复杂的解决方案( http://groovy.codehaus.org/Groovy+Templates),您应该看看 groovy 模板框架。

使用模板框架,您将首先准备模板

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)

就是这样。

于 2012-11-14T16:48:55.893 回答