Grails - добавить параметр на карту параметров - PullRequest
7 голосов
/ 17 октября 2011

Я хотел бы добавить один параметр к моей карте params и связать остальные в ссылке. На данный момент я классически связываю params следующим образом:

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

Как я могу добавить параметр на карту params?

Заранее благодарю за помощь. С уважением,

EDIT:

Хорошо, я нашел способ сделать это.

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

Я не знаю, есть ли еще какой-нибудь способ, подобный Граалю, сделать это. Если он есть, я буду вынужден изучить его;)

1 Ответ

2 голосов
/ 20 октября 2011

Если вам придется делать это несколько раз, вы можете использовать ответ, который вы разместили в библиотеке тегов g:link, так как библиотеки тегов имеют доступ к params и request.

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

А в gsp:

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

Если вы хотите использовать тег со своей собственной картой параметров из gsp, вы также можете использовать следующее в Библиотеке тегов:

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