2009-06-19 62 views
15

我想要使用taglib调用,这里有属性参数,还有链接taglib使用的标签内部的东西。我无法找到要传递给g.link()调用的属性,让它呈现链接的文本。我已经尝试过“身体”和“链接”,“文字”和“链接文字” - 没有任何工作。Grails链接taglib在GSP外部使用

我期待能够调用

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

,但不知道要放什么东西在_____

回答

4

没有参数传递(或好或坏)。

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

g.link(action:"foo", controller:"bar") { "text of the link here" }
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"}) 

而且,与任何常规闭合这是一个方法调用的最后一个参数,你可以把它的右括号后:

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

该文档根本不引用它,但显示封闭。文档可能需要更新。 – user111544 2009-06-24 15:56:55

0

为了完整起见,因为它不是在文档中提到:如果您呼叫的标记(如梅托德调用)在您自己的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") 
}