Grails 3, как отображать json-представление в выходной файл, а не в поток ответов http?

В контроллере, как я могу перенаправить вывод представления json в файл, а не в ответ http?

Грааль 3.2.5.


person Jay    schedule 19.02.2018    source источник


Ответы (2)


Вы можете сделать что-то вроде этого...

@Autowired
JsonViewTemplateEngine templateEngine

void myMethod() {
    Template t = templateEngine.resolveTemplate('/book/show')
    def writable = t.make(book: new Book(title:"The Stand"))
    def fw = new FileWriter(...)
    writable.writeTo( fw )
    ...
}
person Jeff Scott Brown    schedule 19.02.2018
comment
Конечно, в контроллере вам не нужно помечать двигатель @Autowired, но я включил это, чтобы уточнить, откуда берется двигатель. - person Jeff Scott Brown; 19.02.2018
comment
Дополнительную информацию см. на странице views.grails.org/1.2.6/#_the_jsontemplateengine. - person Jeff Scott Brown; 19.02.2018

Другой простой вариант:

def action() {
    def json = [ key1:'value1', key2:[ key21:'value21' ]
    new File( '/the/path' ).withOutputStream{ it << ( json as JSON ) }
    [ some:result ]
}
person injecteer    schedule 21.02.2018