grails项目中的我的班级User.groovy
包含以下Set
Set<GlobalRole> globalRoles
static hasMany = [globalRoles: GlobalRole]
而GlobalRole
是枚举
enum GlobalRole {
GLOBALROLE_MGR('Manager'),
...
GlobalRole(String id) {
this.id = id
}
}
在其中一个视图(编辑)中,我在用户
上显示以下选择from="${com.path.classification.GlobalRole?.values()}"
工作正常。 但是:这需要是动态的,需要使用各种枚举。所有这些都在
com.path.classification
例如
com.path.classification.LocalRole
com.path.classification.InvestmentType
我唯一可用的是托管类的成员(此处为用户),例如:
${domainInstance}?.${property.name}
产生Set user.globalRoles
我的问题:有没有办法通过访问包含其中一些枚举的Set来扣除枚举值?
e.g。这样的事情(不工作!)
user.globalRoles.elements.class
能够动态生成源吗?
答案 0 :(得分:0)
找到解决方案:
${userInstance?.domainClass.getPropertyByName('mySetName').getReferencedPropertyType().values()}
获取所有可能枚举值的列表。