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: нет аннотации, если у вас нет собственной утилиты для этого.

Другие вопросы по тегам