Grails связывает использование taglib вне GSP

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

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

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

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

Ответы

Ответ 1

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

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"}

Ответ 2

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

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

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

Ответ 3

Для полноты, поскольку он не упоминается в документах: если вы вызываете теги (как вызовы методов) внутри своего собственного taglib, вы можете использовать закрытие для вывода любого другого содержимого (используя 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")
}