Grails 在控制器操作中呈现JSON
我有一个Grails3.3.8应用程序Grails 在控制器操作中呈现JSON,grails,controller,json-view,Grails,Controller,Json View,我有一个Grails3.3.8应用程序 compile 'org.grails.plugins:views-json' compile 'org.grails.plugins:views-json-templates' 以及views/partner/_companion.gson下的json视图: import io.my.domain.Companion model { Companion companion } json { id companion.id name
compile 'org.grails.plugins:views-json'
compile 'org.grails.plugins:views-json-templates'
以及views/partner/_companion.gson
下的json视图:
import io.my.domain.Companion
model {
Companion companion
}
json {
id companion.id
name companion.name
description companion.description
}
现在,我想在控制器操作中将对象呈现为json:
class PartnerController {
def action() {
Companion o = Companion.get(...)
log.info render( view:"/partner/_companion", model:[ companion:o ] )
log.info render( view:"_companion", model:[ companion:o ] )
log.info render( template:"companion", model:[ companion:o ] )
log.info render( template:"companion", model:o )
}
}
所有这些calla输出null
s
渲染的最佳方式是什么?您正在调用的是
render
方法。它有一个void
返回类型,这就是您的输出显示null
的原因。该方法不返回值。它将模板呈现给响应。g.render()
如果没有TagLib插件也无法工作,是吗?没错。即使使用g.render()
在代码示例中显示的几种方法也不起作用<代码>视图:“/partner/\u companion”,视图:“\u companion”
和model:o
均无效。@JeffScottBrown我认为它们可以工作,因为我使用web配置文件从工作控制器复制了它们。不管怎么说,您是否有类似于json-view
plugin但能够在Grails之外工作的库?“不管怎么说,您是否有类似于json-view-plugin但能够在Grails之外工作的库?”-这取决于您的想法。它会是一个JVM应用程序吗?您正在调用位于的render
方法。它有一个void
返回类型,这就是您的输出显示null
的原因。该方法不返回值。它将模板呈现给响应。g.render()
如果没有TagLib插件也无法工作,是吗?没错。即使使用g.render()
在代码示例中显示的几种方法也不起作用<代码>视图:“/partner/\u companion”,视图:“\u companion”
和model:o
均无效。@JeffScottBrown我认为它们可以工作,因为我使用web配置文件从工作控制器复制了它们。不管怎么说,您是否有类似于json-view
plugin但能够在Grails之外工作的库?“不管怎么说,您是否有类似于json-view-plugin但能够在Grails之外工作的库?”-这取决于您的想法。它会是一个JVM应用程序吗?