在Grails中获取bean属性名称

在Grails中获取bean属性名称,grails,groovy,properties,dns,taglib,Grails,Groovy,Properties,Dns,Taglib,我正在尝试编写一个标记,它将呈现我的bean属性和相应的值。我希望默认行为是呈现bean中的所有属性。所以我需要以某种方式从传递的bean中获取所有属性名 我想我可以使用propertiesmap,但尽管有bean属性,但还有其他东西,我必须手动管理,这可能很容易出错 我还考虑过使用DefaultGrailsDomainClass,这对于域类来说很方便,但是对于命令对象来说却没有用 你曾经做过类似的事情并想出了一些有用的东西吗?我用属性做过类似的事情,没问题。我的代码是: value.prope

我正在尝试编写一个标记,它将呈现我的bean属性和相应的值。我希望默认行为是呈现bean中的所有属性。所以我需要以某种方式从传递的bean中获取所有属性名

我想我可以使用
properties
map,但尽管有bean属性,但还有其他东西,我必须手动管理,这可能很容易出错

我还考虑过使用
DefaultGrailsDomainClass
,这对于域类来说很方便,但是对于命令对象来说却没有用


你曾经做过类似的事情并想出了一些有用的东西吗?

我用
属性做过类似的事情,没问题。我的代码是:

value.properties.entrySet().each { Map.Entry it ->
    println "$it.key = $it.value"  
}
如前所述,还有
persistentProperties
。但我相信您需要-不要与Groovy
属性混为一谈,前者用于域


对于渲染,也很有用。

我知道这是可能的,但在这种情况下,我必须手动省略元类、瞬变、类等条目。还有,如果涉及到人际关系,我必须手工处理。哦,我明白了。在我的情况下,它不是必需的,所以现在我将缩小功能范围,只允许bean呈现并使用GrailDomainClass。也许有一天我会尝试将它用于命令对象。顺便说一句,命令不是一个bean-我最近学到了这一点。也许你可以使用
Class.declaredFields/declaredMethods
。你看过bean-fields插件了吗?听起来你可能想重新实现它的一些功能是的,我做到了。与bean字段不同的一点是,我想一次呈现所有属性,只需将对象传递给标记。在bean字段中,您必须显式地告诉要呈现哪些属性。