0

是否可以将少量对象发送到 gson 渲染视图?我尝试在控制器中使用:

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"
      }
    }
  ]
}
4

2 回答 2

1

好的,我找到了解决方案:

    render(view: "trainingsByClients", model: [trainingList: trainings, myVariable: "asdg"])

所以我们应该使用render而不是respond. 响应未正确添加其他模型对象。

于 2016-12-17T16:30:56.197 回答
0

实际上,在使用响应时,您必须对所有模型属性使用 g.render 方法

示例 gson 视图:

  model {
    Iterable<Training> trainingList
    String myVariable
}

json {
    myVariable g.render(myVariable)
    trainings tmpl.training(trainingList ?: [])
}

这仅与您在 respond.model 参数中解析的模型有关

于 2021-10-10T11:24:58.100 回答