Grails 一个动作可以调用多个渲染吗
我可以让一个操作多次调用render方法吗Grails 一个动作可以调用多个渲染吗,grails,grails-2.0,grails-controller,Grails,Grails 2.0,Grails Controller,我可以让一个操作多次调用render方法吗 def someAction() { render f.field() render f.field() } 我们正在尝试将两个字段从fields插件渲染到ajax响应以更新div。使用这种方式渲染是否有任何问题?这不是正确的方式,如果要更新多个元素,可以通过json渲染字段,如下所示: render ([fieldOne : f.field(), fieldTwo : f.field()] as JSON) 然后在JavaScript响应
def someAction() {
render f.field()
render f.field()
}
我们正在尝试将两个字段从fields插件渲染到ajax响应以更新div。使用这种方式渲染是否有任何问题?这不是正确的方式,如果要更新多个元素,可以通过json渲染字段,如下所示:
render ([fieldOne : f.field(), fieldTwo : f.field()] as JSON)
然后在JavaScript响应中,您可以处理这两个字段并更新它们。
P/D:必须导入grails转换器才能使用“as JSON”语句
import grails.converters.JSON
简而言之,答案是否定的。但是,您可以使用
withFormat
,让控制器以不同的格式渲染:
withFormat {
html bookList:books
js { render "alert('hello')" }
xml { render books as XML }
json { render books as JSON}
}
是的,你可以
class ExampleController {
def action1() {
render text: 'text1'
render text: 'text2'
action2()
}
def action2() {
render text: 'text3'
}
}
在关闭响应之前,可以调用呈现
class ExampleController {
def action1() {
render text: 'text1'
return // finishing response
action2()
}
def action2() {
render text: 'will not be rendered'
}
}
另外,我从来没有这样做过。与在不同位置多次调用相比,在操作结束时调用一次渲染更好、更清晰。我找到了一个多渲染的示例,但我相信您的方法更好。我认为这是技术上正确的答案,尽管我仍然找不到任何支持它的文档。对我来说,渲染只是将结果输出转储到响应中,因此可以多次调用,这是非常合理的,但是我们的团队选择使用JSON方法来更好地适应文档化的方法。