确定数据类型

时间:2013-02-27 08:56:01

标签: grails groovy

我的控制器中有这个代码:

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

上面的代码将允许我列出我在Build类中拥有的所有属性名称。现在,我想包括属性数据类型,即。 boolean,String等......

有点像输出:

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

可能不完全相同,或者类似,但只要我可以返回他们的数据类型。有人可以帮忙吗?谢谢。

1 个答案:

答案 0 :(得分:1)

persistentProperties中的每个条目都是GrailsDomainClassProperty,这样就可以将该属性的类型作为Class对象进行访问:

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

或者只是将persistentProperties数组本身传递给GSP,然后在那里提取.name.type

除了constrainedProperties之外,您可能还希望考虑使用persistentProperties代替/。 constrainedProperties映射仅列出域类约束块中提到的那些属性,但保证此映射上的迭代器按照它们在约束中列出的顺序返回属性。这是默认的脚手架操作的方式,因为我不知道有任何方法可以控制persistentProperties数组的顺序。