0

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

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

上面的代码将允许我列出我在 Build 类中拥有的所有属性名称。现在,我还想包括属性数据类型,即。布尔值,字符串等...

有点像输出是:

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

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

4

1 回答 1

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数组的顺序。

于 2013-02-27T09:28:21.347 回答