Grails链接标签库在GSP之外的使用

15

我想使用taglib调用带有属性参数的标签,同时也需要使用链接taglib内部的内容。但是我无法找到要传递给g.link()调用以使其呈现链接文本的属性。我已经尝试过'body','link','text'和'linkText' - 这些都不起作用。

我希望能够调用:

g.link(action:“foo”,controller:“bar”,_____:“这里是链接文本”)

但不知道应该放什么在_____中。

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

1
文档中根本没有提到这一点,但确实显示了一个闭包。文档可能需要更新。 - user111544

4

没有需要传递的参数(优点或缺点都有)。

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

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

0
为了完整起见,由于文档中没有提到:如果您在自己的标签库中调用标签(作为方法调用),则可以使用闭包来输出任何其他内容(使用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")
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接