Grails Link TagLib использовать за пределами GSP - PullRequest
15 голосов
/ 19 июня 2009

Я пытаюсь использовать вызов taglib, там есть параметры атрибута, но также материал внутри самого тега, который использует ссылка taglib. Я не могу найти атрибут для передачи в вызов g.link (), чтобы он отображал текст ссылки. Я уже пробовал «body», «link», «text» и «linkText» - ничего из этого не работает.

Я ожидаю, что смогу позвонить

g.link(action:"foo", controller:"bar", _____:"text of the link here")

но не знаю, что положить в _____

Ответы [ 3 ]

25 голосов
/ 19 июня 2009

Обычно вы делаете это так:

g.link(action:"foo", controller:"bar", "text of the link here")

Текст ссылки не обязательно должен быть последним параметром, он может появляться где угодно:

g.link("text of the link here", action:"foo", controller:"bar")

.

Использование с закрытием:

Вместо строки вы можете использовать замыкание, которое возвращает строку:

g.link(action:"foo", controller:"bar", {"text of the link here"})

И, как и для любого Groovy-замыкания, которое является последним параметром для вызова метода, вы можете поставить его после закрывающих скобок:

g.link(action:"foo", controller:"bar") {"text of the link here"}
4 голосов
/ 19 июня 2009

Нет параметров для передачи (к лучшему или к худшему).

Чтобы получить текст в ссылке, вы передаете его как закрытие.

g.link(action:"foo", controller:"bar") { "text of the link here" }
0 голосов
/ 19 февраля 2015

Для полноты картины, поскольку в документах это не упоминается: если вы вызываете теги (как вызовы метода) внутри собственной библиотеки тегов, вы можете использовать замыкание для вывода любого другого содержимого (используя out <<) внутри внешний тег. Например:

out << g.form(method: "post", controller: "login") {
    out << "Name: " << g.textField(name: "name") << "<br>"
    out << "Password: " << g.passwordField(name: "password") << "<br>"
    out << g.submitButton(name: "login")
}
...