0

我遇到了一个 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. 我不明白"""[ ]"""用来封装整个东西的那个,我试图拿走一对",但它不再起作用了。所以它向我证明了它的重要性。

有人帮忙解释一下吗?

谢谢

4

1 回答 1

2
  1. 在 groovy 中,如果函数的最后一个参数是闭包,您可以将此语法更改foo(arg1, arg2, ..., { ... })foo(arg1, arg2, ...) { ... }. 这就是这里发生的事情,最后一个参数link()是一个闭包,应该评估链接的文本表示
  2. ''' 和 ''' 允许多行字符串。""" """ 一样但是也支持变量替换
于 2012-11-19T04:57:43.410 回答