我正在尝试从多态查询的结果中呈现 json-views。使用对象编组器,它可以完美地工作,但不能使用 grails3 json-views。我尝试了各种各样的东西,这似乎是 json-views 插件中的一个错误。
这是一个澄清问题的示例:
class Content {
String text
}
class BlogEntry extends Content {
URL url
}
class Book extends Content {
String ISBN
}
在 contentController 中:
class ContentController extends RestfulController<Content> {
static responseFormats = ['json', 'xml']
ContentController() {
super(Content)
}
def index(Integer max) {
println '*CONTENT:INDEX*'
def contents= Content.findAll()
respond contents
}
}
json 视图:
// /content/index.gson
model {
Iterable<Content> contentList
}
json tmpl.content(contentList ?: [])
// /content/_content.gson
model {
Content content
}
json g.render(content)
我从控制器的 index 方法中得到一个空结果。我正在使用带有 views-json:1.1.0.RC3 的 grails 3.2.0.RC2
使用自定义对象编组器,我可以通过子类类型(BlogEntry、Book)获得 json 结果,这是预期的结果。