выражение createLink втег - PullRequest
       0

выражение createLink втег

1 голос
/ 28 июля 2011

Grails newbie - я пытаюсь создать URI для атрибутов значения в моей разметке select (итерации по каждому объекту класса домена). Я попытался использовать тег createLink в своем теге так:

<g:select name="project.id" from="${Project.list(sort:'start', order:'desc')}" optionValue="${createLink(controller:'project',action:'show')}/${it.id}" noSelection="['null': 'select project']/>

Очевидно, я получаю исключение GSP, которое объясняет, что "/ [mycontroller] / [myaction] / null" не является свойством объекта.

Есть ли другой способ построения этих URI внутри <g:select> (например, <option value="/my/uri/"> без обращения к циклу и построения значений «вручную»?

1 Ответ

3 голосов
/ 28 июля 2011

Это легко сделать, добавив дополнительный метод в домен проекта:

class Project {
   static transients = ['optionValue']

   String getOptionValue() {
       def g = ApplicationHolder.application.mainContext.getBean(
'org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
       return g.createLink(controller:'project',action:'show', id: id)
   }

}

и используя его как:

<g:select name="project.id" from="${Project.list(sort:'start', order:'desc')}" optionValue="optionValue" noSelection="['null': 'select project']" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...