【问题标题】:Grails 3 - get rendered view from serviceGrails 3 - 从服务中获取渲染视图
【发布时间】:2016-10-31 16:58:06
【问题描述】:

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

【问题讨论】:

    标签: grails grails3 grails3.2.0


    【解决方案1】:

    请参阅第 2.9 节http://views.grails.org/1.1.2/#_the_jsontemplateengine

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

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

    【讨论】:

    • 如果有人遇到异常:“grails.views.ViewException: Error rendering view: null”,我通过从模板中删除 response.status 来解决。
    【解决方案2】:

    我在这种情况下使用过 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']])
        }
    }
    

    对我来说,这在我想要/需要服务从 GSP 生成 HTML 的极少数情况下非常有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多