Grails 如何使用域类中的属性子集填充Cmd对象?
我正在开发基于webflow的工作流,在初始化操作期间,我试图从单个域类填充一组命令对象,每个命令对象仅包含域类中可用字段的子集。。。你可以看到很多领域 我正在努力解决的是如何用域类中匹配的属性填充每个命令对象的“属性” 有没有人有这方面的经验,知道如何做到这一点 谢谢Grails 如何使用域类中的属性子集填充Cmd对象?,grails,Grails,我正在开发基于webflow的工作流,在初始化操作期间,我试图从单个域类填充一组命令对象,每个命令对象仅包含域类中可用字段的子集。。。你可以看到很多领域 我正在努力解决的是如何用域类中匹配的属性填充每个命令对象的“属性” 有没有人有这方面的经验,知道如何做到这一点 谢谢 Dave您可以执行以下操作: class Domain { String lastName String firstName int age } class Command { String l
Dave您可以执行以下操作:
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 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的问题在于它包括“类”和“元类”。设置这两个是个坏主意,所以他们被过滤掉了 这是基于Grails的,所以我希望找到一个Groovy方法来完成这个问题。。不知道,也许人们并不总是接受答案:-)这是基于Grails的,所以我希望找到一种Groovy方法来解决这个问题。。不知道,也许人们并不总是接受答案:-)谢谢Stefan,这正是我在寻找的。谢谢Stefan,这正是我在寻找的。