如何使用Domain类的属性子集填充Cmd Object?

时间:2010-11-16 17:34:49

标签: grails

我正在开发基于webflow的工作流程,在初始化操作期间,我尝试从单个域类填充一组命令对象,每个命令对象只包含域类中可用字段的子集...你看到很多领域..

我正在努力的是如何使用域类中的匹配属性来填充每个命令对象的“属性”。

有没有人有过这方面的经验并且知道如何完成它?

由于

戴夫

1 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

class Domain {
    String lastName
    String firstName
    int age
}

class Command {
    String lastName
    int age
}

def domain = new Domain(lastName:'last', firstName:'first', age:33)

def command = new Command()
command.properties.findAll{ !["metaClass","class"].contains(it.key)}.each { k,v ->
   command[k] = domain[k]
}

assert 33 == command.age
assert 'last' == command.lastName    

.properties的问题在于它包含'class'和'metaClass'。设置这两个是一个坏主意,所以他们被过滤掉了。