15

我正在尝试使用 taglib 调用,那里有属性参数,还有链接 taglib 使用的标签本身的东西。我找不到传递给 g.link() 调用以使其呈现链接文本的属性。我已经尝试过“body”、“link”、“text”和“linkText”——这些都不起作用。

我希望能够打电话

g.link(action:"foo", controller:"bar", _____:"这里的链接文本")

但不知道该放什么

4

3 回答 3

25

通常你会这样做:

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"}
于 2009-06-19T19:41:42.077 回答
4

没有参数可以传入(无论好坏)。

要获取链接中的文本,请将其作为闭包传递。

g.link(action:"foo", controller:"bar") { "text of the link here" }
于 2009-06-19T19:05:29.607 回答
0

为了完整起见,由于文档中没有提到它:如果您在自己的 taglib 中调用标签(作为 metod 调用),则可以使用闭包输出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")
}
于 2015-02-19T10:19:16.667 回答