Grails 3 - получить представленный вид из сервиса

Я использую Grails Views и хочу сохранить JSON, выведенный из отрендеренного шаблона, в базе данных. Я не пытаюсь отправить представленный шаблон пользователю, только чтобы сохранить его для последующего пользователя. Как я могу получить это сделать?

2 ответа

Решение

См. Раздел 2.9 на http://views.grails.org/1.1.2/.

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']])
    }
}

Для меня это прекрасно работает в тех редких случаях, когда мне нужен / нужен сервис для генерации HTML из GSP.

Другие вопросы по тегам