Использование taglib ссылок Grails за пределами GSP

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

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

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

но не знаю, что вставить _____


person user111544    schedule 19.06.2009    source источник


Ответы (3)


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

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

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

g.link(action:"foo", controller:"bar") {"text of the link here"}
person Zim    schedule 19.06.2009
comment
Документы вообще не ссылаются на это, но показывают закрытие. Документы, вероятно, нуждаются в обновлении. - person user111544; 24.06.2009

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

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

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

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