【问题标题】:what is the advantages using Respond Over Render in Grails 2.4.x (and what is Request())?在 Grails 2.4.x 中使用 Respond Over Render 有什么优势(以及 Request() 是什么)?
【发布时间】:2014-08-09 15:30:10
【问题描述】:

在 grails 2.xxx 中使用 respond() 优于 render() 有什么优势?

我在尝试生成域的控制器和视图时发现了 respond()。

就像在 create() 它的代码如下:

respond new DomainObject(params);

我还发现了 request.withFormat(),对我来说有点意外

 droppingInstance.save flush:true;
request.withFormat {
            form multipartForm {
                flash.message = message(code: 'default.created.message', args: [message(code: 'dropping.label', default: 'Dropping'), droppingInstance.id])
                redirect droppingInstance
            }
            '*' { respond droppingInstance, [status: CREATED] }
        }

我已经阅读了文档,但没有发现有关多平台等的任何线索... http://grails.org/doc/latest/ref/Controllers/request.html http://grails.org/doc/latest/ref/Controllers/respond.html

为什么不使用重定向来显示数据?

有人能解释一下这两种方法吗? :)

【问题讨论】:

    标签: grails


    【解决方案1】:

    在grails中使用respond()优于render()的优势是什么 2.xxx ?

    并不是respondrender 比另一个更好。它们是对不同事物有用的两种不同方法。最大的区别是respond 在构建 REST 接口时非常有用,并且您希望使用请求标头中的不同基于内容的信息进行响应(例如)。

    例如,如果您的控制器操作执行以下操作:

    respond new DomainObject(params)
    

    您还没有在那里表达响应应该是什么格式。这可能导致 GSP 被渲染,它可能导致域实例被序列化为 JSON、XML 或其他格式。在构建需要支持多种内容类型的 REST 接口并且您不想用一堆命令式逻辑来处理这些内容类型时,这非常灵活和有用。有关详细信息,请访问 http://grails.org/doc/latest/guide/single.html#RESThttp://grails.org/doc/latest/ref/Controllers/respond.html

    我还发现了 request(),对我来说有点意外

    您在什么情况下看到了对request() 的调用?

    为什么不使用重定向来显示数据?

    因为redirect 不显示数据。重定向导致浏览器重定向到其他地方。其他地方可能会用renderrespond 显示数据或做它需要做的任何事情,但redirect 所做的只是说“去别的地方”。

    【讨论】:

    • 我在保存/更新数据时发现 request.withFormat() 我只是不明白我上面写的表单 multipartForm{} 和 '*' {}
    • 您的原始注释提到调用request() 方法,这没有意义。 request.withFormat() 确实有道理。这是一种根据请求的内容类型为响应呈现不同格式的方法。有关详细信息,请参阅grails.org/doc/latest/guide/theWebLayer.html#contentNegotiation 的内容协商文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2013-04-08
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2010-09-19
    • 2012-12-19
    相关资源
    最近更新 更多