我的控制器中有这个代码:
def cols = grailsApplication.getDomainClass('com.archie.Build').persistentProperties.collect {it.name}
上面的代码将允许我列出我在Build类中拥有的所有属性名称。现在,我想包括属性数据类型,即。 boolean,String等......
有点像输出:
[floorType:String, floorWidth:Float, ......]
可能不完全相同,或者类似,但只要我可以返回他们的数据类型。有人可以帮忙吗?谢谢。
答案 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
数组的顺序。