4

MailService プラグインに基づいて電子メールを送信するために GSP を使用しています。sendMail クロージャーは (とりわけ) 通過しますbody(view:..., model:myModel)

${itemName}GSPを使用するだけで、myModel マップのすべてのアイテムにアクセスできることがわかっています。ただし、のようにアイテム名を動的に作成したい場合があるため'item'+i、変数にアクセスするための周囲のメソッドが必要です。

${model.get('item'+i)、およびを既に試し${params.get('item'+i)ましたが、モデルは null で、params は空のマップです。pageScopeも試してみたのですが、アイテムへのアクセスはできますが、pageScopeはMapではないので使え${pageScope.itemNameません。${pageScope.get('item'+i)}

おそらく、これを解決するための解決策は複数あります。簡単なものでよかったです;-)。私が見る 1 つの解決策は、myModel を唯一のパラメーターとして渡し、常に を使用myModel.get(...)することですが、これは、既存のすべての GSP を変更して、項目 (固定名) に直接アクセスするのではなく、常に myModel を参照する必要があることを意味します。したがって、GSP に渡されたモデルを変更する必要がない方法があれば、これが私のお気に入りです。

このコンテキストでのモデルとパラメーターの違いについて誰かが一言言うことができれば、これはさらに役に立ちます!

4

3 に答える 3

7

私は今それを使用してそれを管理しました${pageScope.getProperty(...)}

于 2010-09-28T16:11:50.663 に答える
3

「モデル」スコープまたは変数はありません。代わりに、モデルマップ内のオブジェクトは、GSPで使用できるようにするために要求属性として設定されます。これは、JSTLを使用してJSPの変数に簡単にアクセスできるようにするSpring機能であり、GSP構文はJSTLと非常に似ているため、Grailsでも同じように機能します。

したがって、これを使用できます。

${request.getAttribute('item'+i)}

動的な名前を使用してモデル変数にアクセスします。

于 2010-09-28T11:54:08.347 に答える
0

使用できます${fieldValue(bean: book, field: 'title')}

参照: http://grails.github.io/grails-doc/latest/ref/Tags/fieldValue.html

于 2015-02-14T02:21:05.007 に答える