Grails 3 - 从服务中获取渲染视图

Grails 3 - get rendered view from service

我正在使用 Grails Views 并希望将 JSON 从呈现的模板输出的数据存储在数据库中。我不是要将呈现的模板发送给用户,只是为了以后的用户存储它。我怎样才能做到这一点?

参见 http://views.grails.org/1.1.2/#_the_jsontemplateengine 的第 2.9 节。

Template t = templateEngine.resolveTemplate('/book/show')
def writable = t.make(book: new Book(title:"The Stand"))
def sw = new StringWriter()
writable.writeTo( sw )

然后你可以用sw做任何你想做的事。

我曾在这种情况下使用过 groovyPageRenderer。请参阅此处的页面呈现 API 部分:http://docs.grails.org/2.1.0/guide/introduction.html

class myService {
    PageRenderer groovyPageRenderer

    String renderTemplate(){
        return groovyPageRenderer.render([view: '/path/to/gsp', model:[key1:'val1', key2:'val2']])
    }
}

对我来说,这在我 want/need 从 GSP 生成 HTML 的服务的极少数情况下效果很好。