需要有关groovy语法的帮助

时间:2012-11-19 04:39:33

标签: grails groovy

我遇到了一个groovy语法,它在gsp文件中创建了一个链接,如下所示:

class LoginTagLib {
def loginControl = {
out << """[${link(action:"login",controller:"user"){"Login"}}]"""
}}

我知道它最终会在html中变成这个:

<a href="/racetrack/user/login">Login</a>

但是,有两部分语法我不明白:

  1. 我不明白${link(action:"login",controller:"user"){"Login"}}

    • 我得到$(),用于字符串插值。
    • 我也获得link(action:"login",controller:"user"),只有2个参数传递到link
    • {"Login"}背后的是什么?
  2. 我不明白用于封闭整个事物的"""[ ]""",我试图夺走一对",但它不再适用了。所以它证明了它具有它的意义。

  3. 有人帮忙解决一些问题吗?

    由于

1 个答案:

答案 0 :(得分:2)

  1. 在groovy中,如果函数的最后一个参数是闭包,则可以将此语法foo(arg1, arg2, ..., { ... })更改为foo(arg1, arg2, ...) { ... }。这就是这里发生的事情,link()的最后一个参数是一个应该评估链接的文本表示的闭包
  2. '''和'''允许使用多行字符串。 “”“”“相同但也支持变量替换