0

jasper レポートで Grails からリスト属性をレンダリングする方法がわかりません

私のドメインクラスは次のようになります。

class Project {


String name
String projectLeader
List divisions

String toString(){
    "$name"
}


static hasMany = [divisions : Division ]
...

そして、分割ドメインクラスがここに来ます

class Division {

String name
String divisionResponsible
String createDate

...

プロジェクトコントローラーはこんな感じ

class ProjectController {


def scaffold = true

def index = {
    redirect(action : list)
}


def createReport = {

    def projectreport = Project.getAll([params.project_id])
    chain(controller:'jasper',action:'index',model:[data:projectreport],params:params)

}

}

プロジェクト ドメインからのデータの表示は、次のように要素を定義してアクセスすることで正常に機能します

$F{name}
$F{projectLeader}

問題は、リスト要素へのアクセスです。私が見つけた唯一の作業方法は

 $F{divisions.[0].name}

またはリストの2番目の要素

 $F{divsions.[1].name}

ただし、これは、リスト要素の数が常に同じで制限されている場合にのみ機能します。

要素の数がわからない場合、リスト要素を反復処理する方法はありますか?

または、リスト要素にアクセスする別の可能性はありますか?

4

1 に答える 1

1

そこにリストのインデックスは必要ありません。次のように使用します。

<textFieldExpression   class="java.lang.String"><![CDATA[$F{divisions.name}]]></textFieldExpression>

これではなく:

 $F{divisions.[0].name}
于 2013-09-11T03:42:25.787 に答える