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