2

これらは私のコントローラーとコマンドです。今、私はすべてのフィールド名を取得したいと思います。ドメイン クラスのフィールド名を取得するためのリンクは次のとおり です。ドメイン クラス フィールド名を取得します。しかし、以下で説明しているように、コマンドのフィールド名を取得する必要があります

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;
}
}
4

2 に答える 2

4
ConnectionsAdvSearchCommand.declaredFields.each{
   if(!it.synthetic) println it.name
}

次のように、ExpandoMetaClass からプロパティを取得することもできます。

ConnectionsAdvSearchCommand.metaClass.properties.each{
    if(it.field) println it.name
}

この場合it.field、 からのクラス プロパティは無視されmetaClassます。

グレイル 2.2.0

于 2013-08-29T15:16:39.510 に答える
-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
}

詳細については、私のブログをご覧ください

于 2014-06-10T16:03:08.560 に答える