2013-02-27 57 views
0

我有這樣的代碼在我的控制器:確定數據類型

def cols = grailsApplication.getDomainClass('com.archie.Build').persistentProperties.collect {it.name} 

上面的代碼可以讓我列出build類的所有屬性名我有。現在,我想包括屬性數據類型,即。布爾,字符串等...

有點像輸出爲:

[floorType:String, floorWidth:Float, ......] 

也許不完全一樣,也許類似的,但只要我能回到自己的數據類型。有人可以幫忙嗎?謝謝。

回答

1

persistentProperties每個條目是一個GrailsDomainClassProperty,並且這提供了訪問的屬性的類型作爲Class對象:

def props = [:] 
grailsApplication.getDomainClass('com.archie.Build' 
    ).persistentProperties.each { 
     props[it.name] = it.type.name 
    } 

或者只是通過傳遞persistentProperties陣列本身的GSP,然後提取.name和那裏有.type

您也不妨考慮使用constrainedProperties而不是persistentPropertiesconstrainedProperties圖只列出了域類約束塊中提到的那些屬性,但是保證此映射上的迭代器按照它們在約束中列出的順序返回屬性。這是默認的腳手架如何操作,因爲我不知道有任何方法來控制persistentProperties陣列的順序。