Grails - параметр привязки к полю командного объекта с другим именем
Если у меня есть объект команды SomeClassCommand с полем String someField, но я хочу связать данные из параметра params.otherField, как мне это сделать? Есть ли аннотация, которую я могу поместить в объект команды?
1 ответ
Решение
На самом деле есть ужасная работа, которая не поддается цели автоматического связывания в вашем случае.
def map = [:]
map.someField = params.otherField
//plus set all the other params to map
map << params
def commandObj = new SomeCommandObj()
//Explicitly bind map to command object
bindData(commandObj, map)
Это действительно ужасно, потому что вы выполняете дополнительную работу только для связывания данных. Вы могли бы напрямую установить значения для командного объекта.
Я бы предложил либо изменить имя поля командного объекта, либо имя поля параметра, которое всегда можно контролировать. AFAIK: нет аннотации, если у вас нет собственной утилиты для этого.