将模板渲染为字符串?

Hen*_*rik 20 grails

是否可以将模板"渲染"为字符串?我想使用一个模板,并用一些值填充,然后我必须保存到本地光盘.

render方法始终将模板发送到客户端.我想要类似的东西运行模板,但将模板的输出保存到本地字符串变量,我可以存储在本地文件系统中.

Jan*_*olm 22

它比你想象的简单:

def myTemplateString = g.render(template: "test", model: [foo: bar])
Run Code Online (Sandbox Code Playgroud)


Anu*_*ora 14

如果您使用的是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
     }
Run Code Online (Sandbox Code Playgroud)

这也将在Web请求的范围之外工作,例如在预定作业或Web服务中.

  • 这在Tomcat 6中至少不适用于Grails版本2.1.1及更低版本. (2认同)