2011-05-21 47 views
17

我有這樣的事情:的Grails G:鏈路通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> 

我想要做的是,當我點擊「會議」時,控制器「會議」​​與方法「參加」被載入,並且params'it.conference'通過。我怎樣才能在g:link標籤中傳遞這個參數?

我需要這個,因爲當我點擊'會議'這個詞時,其他頁面會加載會議詳細信息並通過ID。

回答

29

使用PARAMS屬性在地圖上的參數來傳遞:

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

更多的例子參見the documentation

+0

我看過了。但我不明白我該如何通過'it.conference'通過它。 – robert 2011-05-21 23:17:53

+0

會議是一個完整的對象還是一個原始? – 2011-05-22 01:11:50

+2

從文檔來看,這並不是非常明顯,但是你可以放棄引號來引用前一個操作中設置的變量 – barrymac 2011-11-22 16:56:28

3
params="[customerId: customer.id]" 
3

您需要用$ {}包裝整個參數,而不是將每個想要單獨傳遞的變量包裝起來。

<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>