2011-10-17 18 views
7

params haritanıza tek bir parametre eklemek ve geri kalanını bir bağlantıya bağlamak istiyorum. aşağıdaki gibi Şu anda, sadece klasik params bağlamak:Grails - Params haritasına bir parametre ekle

<g:link class="email" controller="administrator" action="test" params="${params}">Link text</g:link> 

nasıl params haritaya bir parametre ekleyerek bunu?

Yardımlarınız için şimdiden teşekkür ederiz. Selamlar,

DÜZENLEME:

Tamam, bunu yapmak için bir yol bulmak zorunda.

params="${params + ['forwardURI': request.forwardURI]}" 

Bunu yapmak için Grails benzeri bir yol olup olmadığını bilmiyorum. Eğer bir tane varsa, bunu öğrenmek zorunda kalırdım;)

+0

Bağlantınızın metnini değiştirmek isteyebilirsiniz, çünkü bu oldukça uygunsuz. Konu hakkında, hangi noktada verileri bağlamaya çalışıyorsunuz? – Joseph

+0

Merhaba Joseph, Eğer ısrar ederseniz etiketi kaldırırdım, ama 'params' haritalarıyla bu şekilde çalışıyorsanız, bu veritabanını çağırmaz mıydınız? –

+0

BTW Burt, sanırım 'Ben karımı dövüyorum' yolunu daha saldırgan :) Ama seçiminiz :) –

cevap

2

Bunu tekrar tekrar yapmanız gerekiyorsa, g:link sarmalayıcı Etiket Kitaplığı'nda gönderdiğiniz yanıtı kullanabilirsiniz, çünkü Etiket Kitaplıkları params'a erişebilir ve request.

: Eğer GSP kendi özel parametre haritasıyla etiketi kullanmak isterseniz

<g:forwardAwareLink class="email" controller="administrator" action="test">Link text</g:forwardAwareLink> 

, ayrıca Etiket Kütüphanede şu kullanabilirsiniz:

def forwardAwareLink = { attr, body -> 
    attr.params = params + ['forwardURI': request.forwardURI] 
    out << g.link(attr, body) 
} 

ve GSR içinde

attr.params = attr.params + ['forwardURI': request.forwardURI]