在 gson 中渲染几个模型
Rendering few models in gson
是否可以将很少的对象发送到gson渲染视图中?
我尝试在 controller:
中使用
respond trainings, [status: OK, view:"trainingsByClients", model: [myVariable: "test", anotherVariable: 123]]
并且在 gson 视图中:
model {
Iterable<Training> trainingList
String myVariable
}
json {
myVariable myVariable
trainings tmpl.training(trainingList ?: [])
}
它的响应是:
{
"myVariable": null,
"trainings": [
{
"id": 3,
"name": "test t",
"numberOfAbsentClients": 0,
"startDate": "2016-11-20T09:00:00+0000",
"numberOfClients": 2,
"section": {
"id": 1,
"name": "test sec"
}
},
{
"id": 10,
"name": "test 2",
"numberOfAbsentClients": 0,
"startDate": "2016-11-09T11:00:00+0000",
"numberOfClients": 2,
"section": {
"id": 2,
"name": "sec 2"
}
}
]
}
好的,我找到了解决方案:
render(view: "trainingsByClients", model: [trainingList: trainings, myVariable: "asdg"])
所以我们应该使用render
而不是respond
。响应未正确添加其他模型对象。
实际上,在使用 respond
时,您必须对所有模型属性使用 g.render 方法
gson 视图示例:
model {
Iterable<Training> trainingList
String myVariable
}
json {
myVariable g.render(myVariable)
trainings tmpl.training(trainingList ?: [])
}
这仅与您在respond.model参数中解析的模型有关
是否可以将很少的对象发送到gson渲染视图中? 我尝试在 controller:
中使用respond trainings, [status: OK, view:"trainingsByClients", model: [myVariable: "test", anotherVariable: 123]]
并且在 gson 视图中:
model {
Iterable<Training> trainingList
String myVariable
}
json {
myVariable myVariable
trainings tmpl.training(trainingList ?: [])
}
它的响应是:
{
"myVariable": null,
"trainings": [
{
"id": 3,
"name": "test t",
"numberOfAbsentClients": 0,
"startDate": "2016-11-20T09:00:00+0000",
"numberOfClients": 2,
"section": {
"id": 1,
"name": "test sec"
}
},
{
"id": 10,
"name": "test 2",
"numberOfAbsentClients": 0,
"startDate": "2016-11-09T11:00:00+0000",
"numberOfClients": 2,
"section": {
"id": 2,
"name": "sec 2"
}
}
]
}
好的,我找到了解决方案:
render(view: "trainingsByClients", model: [trainingList: trainings, myVariable: "asdg"])
所以我们应该使用render
而不是respond
。响应未正确添加其他模型对象。
实际上,在使用 respond
时,您必须对所有模型属性使用 g.render 方法gson 视图示例:
model {
Iterable<Training> trainingList
String myVariable
}
json {
myVariable g.render(myVariable)
trainings tmpl.training(trainingList ?: [])
}
这仅与您在respond.model参数中解析的模型有关