【发布时间】:2012-02-17 11:42:37
【问题描述】:
是否可以将模板“渲染”成字符串?我想使用一个模板并用一些值填充它,然后我必须将它们保存到本地磁盘。
render 方法总是将模板发送给客户端。我想要类似于运行模板但将模板的输出保存到可以存储在本地文件系统中的本地字符串变量。
【问题讨论】:
标签: grails
是否可以将模板“渲染”成字符串?我想使用一个模板并用一些值填充它,然后我必须将它们保存到本地磁盘。
render 方法总是将模板发送给客户端。我想要类似于运行模板但将模板的输出保存到可以存储在本地文件系统中的本地字符串变量。
【问题讨论】:
标签: grails
比你想象的要简单:
def myTemplateString = g.render(template: "test", model: [foo: bar])
【讨论】:
<g:render template="something" 可以像g.render(template: 'something') 这样调用。
如果您使用的是 Grails 2.x,则可以使用 PageRenderer 类。试试这样的:
grails.gsp.PageRenderer groovyPageRenderer
void methodName() {
def contents = groovyPageRenderer.render(template:"yourTemplate", model:yourModel)
//you can use contents as a string now
}
这也将在 Web 请求的范围之外工作,例如在计划的作业或 Web 服务中。
【讨论】: