2010-11-16 91 views
0

我正在開發一個基於webflow的工作流程,並且在初始化操作過程中,我試圖從一個域類中填充一組命令對象,每個命令對象只包含域類中可用字段的一個子集......很多領域你看..如何使用Domain類的屬性子集填充Cmd對象?

我在掙扎的是如何填充每個命令對象的'屬性'只有從域類的匹配屬性。

有沒有人有這方面的經驗,知道如何實現它?

感謝

戴夫

+0

這是基於Grails的,所以我希望找到一個Groovy方法來完成這個問題..不知道,也許人們並不總是接受答案:-) – Dave 2010-11-16 18:37:11

回答

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是它包含了 '類' 和 '的metaClass'。把這兩個設定成一個糟糕的主意,所以他們會被過濾掉。

+0

感謝Stefan,那正是我所看到的。 – Dave 2010-11-19 11:56:53

相關問題