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.