2013-02-27 80 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阵列的顺序。