如何从字符串中获取grails类名
下面是我的grails域对象的精简版本:如何从字符串中获取grails类名,grails,Grails,下面是我的grails域对象的精简版本: //this is a lookup table class PetType { String description } class Family { static hasMany = [ petTypePreferred:PetType ] } 在我的控制器中,我从gsp返回一个参数字符串值'petTypePreferred'。知道该字符串值,并且知道域类系列,如何从“petTypePreferred”字符串值确定域类
//this is a lookup table
class PetType {
String description
}
class Family {
static hasMany = [
petTypePreferred:PetType
]
}
在我的控制器中,我从gsp返回一个参数字符串值'petTypePreferred'。知道该字符串值,并且知道域类系列,如何从“petTypePreferred”字符串值确定域类?在Grails2.2.4中,getPropertyByName(字符串值)方法在域对象上不有效,即使它在javadoc中
因此,我有字符串petTypePreferred和类系列,但我需要找到给定这两条信息的类PetType。我不确定您到底想要什么: 获取域名类名称:
hasMany
是Family
中的一个简单静态Map
。Map
将字段名存储为键,将目标类型存储为值。因此,您可以使用以下方法从字符串petTypePreferred
获取域类PetType
:
Familiy.hasMany['petTypePreferred']
获取给定系列实例的description
内部PetType
的值:
一个家庭可以有多种宠物类型(有多种宠物类型),因此结果必须是一个集合:
Family family = ...
List descriptions = family['petTypePreferred']*.description
这将为名为Family
的Family
实例提供PetType
描述列表。Family.有许多['petTypePreferred']工作得很好。那有很多电话到底是干什么的?我在关系字段的域声明中看到了它,但不是这样使用的。hasMany
在域类中用于定义gorm关联,有关更多详细信息,请参见此: