2011-10-17 12 views
7

Vorrei aggiungere un singolo parametro alla mia mappa params e associare il resto in un collegamento. Al momento, mi legano solo il params classicamente come segue:Grails - Aggiungere un parametro alla mappa params

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

Come potrei aggiungere un parametro alla mappa params?

Grazie in anticipo per l'aiuto. Saluti,

EDIT:

Ok, ho trovare un modo per farlo.

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

Non so se ci sono altri modi simili a Grails per farlo. Se ce n'è uno, sarei obbligato ad apprenderlo;)

+0

Potrebbe essere necessario modificare il testo del collegamento, in quanto è piuttosto inappropriato. In tema, a che punto stai cercando di legare i dati? – Joseph

+0

Ciao Joseph, Rimuoverei il tag se insisti, ma, lavorando in quel modo con le mappe "params", non chiameresti quel databinding? –

+0

BTW Burt, penso di trovare "I beat mia moglie" molto più offensivo :) Ma la tua scelta :) –

risposta

2

Se devi ripetere questa operazione ripetutamente, puoi utilizzare la risposta che hai inserito in una libreria di tag wrapper g:link, poiché le librerie di tag hanno accesso a params e request.

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

E nel GSP:

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

Se si desidera utilizzare il tag con la tua mappa parametro personalizzato dal SPG, è anche possibile utilizzare il seguente nella Biblioteca Tag:

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