борется с кучей JsonViews и шаблонов и методом ответа контроллера.
окружение: Grails 3.3.9 / json views 1.2.10
для целей этого теста я настроил и URL-отображение, как это
get "/api/test2/$id"(controller:"test2", action:"thing")
тогда в моем контроллере на действие отвечает объект устройства d для рендеринга и карта модели, подобная этой
//test want this to call views/test2/thing.gson view
//i.e default is for controller method name to map to <methodname>.gson view
def thing (Device device) {
if(device == null) {
render status:404
} else {
Device d = device
respond d, model:[devCount:1, thing: "will"]
}
}
отправка переменных devCount и вещей в качестве переменных модели
в файле view.gson я добавил devCount и вещь в качестве переменных модели
//model receives the object returned from controller action
model {
Integer devCount
String thing
Device device
}
json.will {
hello "hello from thing.gson view", "some more", "and some more"
world 'this world'
deviceName device.name
numberOfDevices devCount
name thing
}
но когда это отображается в браузере, и devCount, и вещь отображаются как null
{"will":{"hello":["hello from thing.gson view","some more","and some more"],"world":"this world","deviceName":"ACME-HO-WAN1","numberOfDevices":null,"name":null}}
почему модель, отправленная для ответа, не отображается в переменных модели представления с тем же именем?