这些是我的控制器和命令。 现在我想得到所有的字段名称。 以下是获取域类字段名称的链接 Get domain class field names。 但我需要获得Command的字段名称,我将在下面解释
class SocialRecruitingController
{
def getFieldNames()
{
ConnectionsAdvSearchCommand.fields.each
{it->
log.info(it?.name+",");
// Expecting keyword,fname,lname,title,company,school,location,country,postalCode
}
}
class ConnectionsAdvSearchCommand
{
String keyword
String fname;
String lname;
String title;
String company;
String school;
String location;
String country;
String postalCode;
}
}
答案 0 :(得分:4)
ConnectionsAdvSearchCommand.declaredFields.each{
if(!it.synthetic) println it.name
}
您也可以尝试从ExpandoMetaClass获取属性,如
ConnectionsAdvSearchCommand.metaClass.properties.each{
if(it.field) println it.name
}
在这种情况下,it.field
会忽略metaClass
。
Grails 2.2.0
答案 1 :(得分:-1)
Grails:列出域/模型中的所有字段/变量
在此示例中,我假设您的域名类是' Research'并且完整的包名称是' com.package.name.Research'
方式1: Research.declaredFields.each {
if(!it.synthetic)
println it.name
}
方式2:
def names = grailsApplication.getDomainClass('com.package.name.Research').persistentProperties.collect {
println it.name
}
方式3:
def Research domainClass = grailsApplication.getGrailsDomainClass('Research')
def persistentProperties = domainClass.getPersistentProperties()
persisentProperties.each { property ->
println property
}
可以在my blog
找到更多信息