Вторая нотация "text.a"
используется для устранения неоднозначности преобразования данных из свойств в объекты домена. Например, если у вас есть 2 объекта домена, каждый со свойством "a"
, если вы делаете domObj1.properties = params
и domObj2.properties = params
, значение будет передано обоим объектам домена, что может быть не тем, что вам нужно. Таким образом, по вашему мнению, у вас должны быть переменные domObj1.a и domObj2.a, а в контроллере grails вы можете создать экземпляр, используя def domObj1 = new DomObj1(params["domObj1"])
Если вы имеете в виду второй вопрос, если вы имеете в виду возможность итерации по объектам, вы вполне можете, используя синтаксис GPath в оболочке $ {}, например проверить код в свойстве id ниже.
<td><g:remoteLink controller="device" action="getDevice" id="${objInstance.prop1.prop2.id}" update="propDetail">${fieldValue(bean: objInstance.prop1, field: "prop1")}</g:remoteLink></td>
В приведенном выше примере также показан ajax способ отправки формы из gils gils.