我正在尝试使用带有 Grails 应用程序的 html 模板。我得到了一个 URL,需要在运行时将 html 动态加载到我的 Grails 视图中。在 HTML 代码中有一个 {title} 和一个 {content} 标记,我的 Grails 代码将被注入其中。
在 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 绝对正确:如果您需要更复杂的解决方案( 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)
就是这样。