web-dev-qa-db-ja.com

grails g:link pass params

私はこのようなものを持っています:

<g:each in="${temp}">

  <li>Date: ${it.dateParticipated}, <br>Role: ${it.role}, <br>Acceptence: ${it.accepted}, <br>
  <g:link controller="conference" action="participated" id="${it.conference.id}">
     Conference: </g:link>${it.conference},<br>
Role: ${it.role}, <br>Status: ${it.status}</li><br>

  <br>
</g:each>

私がやりたいことは、「会議」をクリックすると、「参加」メソッドを持つコントローラ「会議」がロードされ、パラメータ「it.conference」が渡されることです。このパラメーターをg:linkタグで渡すにはどうすればよいですか?

「会議」という単語をクリックすると、IDが渡された会議の詳細が他のページに読み込まれるため、これが必要です。

18
robert

Params属性を使用して、パラメーターのマップを渡します。

<g:link action="/conference/participated" id="${it.conference.id}" params="[foo: 'bar', bar: 'foo']">My Link!</g:link>

その他の例については ドキュメント を参照してください。

30
Kaleb Brasee
params="[customerId: customer.id]"
3
Aaditya Bhatta

個別に渡すすべての変数をラップするのではなく、パラメーター全体を$ {}でラップする必要があります。

<g:each in="${temp}">

  <li>Date: ${it.dateParticipated}, <br>Role: ${it.role}, <br>Acceptence: ${it.accepted}, <br>
  <g:link controller="conference" action="participated" params="${[id: it.conference.id, role: it.role, status: it.status]}">
     Conference: </g:link>

  <br>
</g:each>
3
Arye Rosenstein