如何选择性地打印Grails响应?

时间:2015-10-13 19:10:24

标签: grails pretty-print

Grails转换器可以配置为默认打印(或不打印)。

我喜欢使用响应方法代替任何MarkupBuilder,JsonBuilder 或其他任何我应该处理响应格式的库。

respond myObject

用户可以查询xml,json或hal。

如何让用户查询漂亮的图片(假设默认不是) 如果用户在URL中传递参数,如下所示:

/foos?pretty=true

如何强制回复漂亮的打印?

OB的。我看到了this question,但他们都是静态地解决了这个问题。我想根据要求范围改变它。

1 个答案:

答案 0 :(得分:0)

由于您希望能够根据控制器参数选择格式,我认为使用render()的Grails转换器将比使用respond()更好。这是一个例子:

import grails.converters.*

class SomeController {
    def foos() {
        def pretty = params.pretty
        def prettyType
        def myObject = /* whatever */

        if(pretty == 'xml') prettyType = XML
        if(pretty == 'json') prettyType = JSON

        if(prettyType) render myObject.asType(prettyType)
        else render myObject        
    }
}

网址类似于:/foos?pretty=xml/foos?pretty=json